網站搜尋

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 就會被啟用,否則則會被禁用。