typescript - 錯誤:伺服器不支援 SSL 連線 Strapi
我正在嘗試使用 Postgres 部署 Strapi,我已多次嘗試重寫配置將 pg 版本回滾到版本 7,但都沒有幫助。還有其他方法可以解決這個問題嗎?
Error: The server does not support SSL connections
at Socket.<anonymous> (C:\Users\User\Desktop\Progect\CMS\node_modules\pg\lib\connection.js:87:35)
at Object.onceWrapper (node:events:632:26)
at Socket.emit (node:events:517:28)
at Socket.emit (node:domain:489:12)
at addChunk (node:internal/streams/readable:335:12)
at readableAddChunk (node:internal/streams/readable:308:9)
at Readable.push (node:internal/streams/readable:245:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
datadase.ts
module.exports = ({ env }) => ({
defaultConnection: "default",
connection: {
client: "postgres",
connection: {
connectionString: env("DATABASE_URL"),
host: env("DATABASE_HOST", "localhost"),
port: env.int("DATABASE_PORT", 5432),
database: env("DATABASE_NAME", "postgres"),
user: env("DATABASE_USER", "postgres"),
password: env("DATABASE_PASSWORD", "12345"),
schema: env("DATABASE_SCHEMA", "public"),
ssl: env('DATABASE_SSL', false)
},
}
});
.env
HOST=0.0.0.0
PORT=1337
APP_KEYS=/CAc/WBKZ3TNThJWGnwYjA==,18u1UZYJzs2BtCKMgkNzTQ==,Z4mg+HeJTEb6hA4n3RzXRw==,rm/2i8al8Jfpz3ZR4B3ywg==
API_TOKEN_SALT=stGJgacmQuaeA7gtSRO+mQ==
ADMIN_JWT_SECRET=rE0UTdjnNqyYep5NbdT5jw==
TRANSFER_TOKEN_SALT=JiCFstDJYMFEl9D3hc91Hw==
Database
DATABASE_CLIENT=postgres
DATABASE_HOST=127.0.0.1
DATABASE_PORT=5432
DATABASE_NAME=CMS
DATABASE_USERNAME=postgres
DATABASE_PASSWORD=12345
DATABASE_SSL=false
DATABASE_URL: postgres://postgres:12345@host:5432/CMS?sslmode=disable
而我正試圖在本地機器上部署這些所有東西
const path=require("path");
使用以下配置
這是最後的其中之一
let pool = {
min: 0,
max: 10,
acquireTimeoutMillis: 600000,
createTimeoutMillis: 30000,
idleTimeoutMillis: 20000,
reapIntervalMillis: 20000,
createRetryIntervalMillis: 200,
> };
let connection = {
connection: {
client: "postgres",
connection: {
host: process.env.DATABASE_HOST,
port: process.env.DATABASE_PORT,
database: process.env.DATABASE_NAME,
user: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
ssl: process.env.DATABASE_SSL
> },
debug: false,
pool,
> },
> };
console.log(connection);
module.exports = ({ env }) => connection;
將 pg 版本回滾到 7
答案#1
當你從 process.env 讀取環境變數時,它們的值都是字串。這意味著你在配置中傳遞了 ssl: "false",這是一個真值,因此 pg 仍然會嘗試使用 SSL。
試著在配置中硬編碼 ssl: false(一個實際的布林值),看看是否有幫助。
如果你希望可以使用環境變量來配置 ssl,可以考慮使用類似 ssl: process.env.DATABASE_SSL === "true" 的方式。這樣當 DATABASE_URL 的值為 "true" 時,ssl 就會被啟用,否則則會被禁用。