さて、私はついにそれを理解することができました。問題は複数行であり、ローカルの開発環境でのdotenvに慣れていないことだと思います。
このようなコードですべてを機能させることができました。 fs.readFileSync()でも機能しましたが、ソース管理にコミットしたくありませんでした。
const { Pool } = require('pg')
const fs = require('fs')
const pgPool = new Pool({
user: process.env.PGUSER,
password: process.env.PGPASSWORD,
host: process.env.PGHOST,
database: process.env.PGDATABASE,
port: process.env.PGPORT,
ssl: {
rejectUnauthorized: true,
// ca: fs.readFileSync(
// `${process.cwd()}/cert/ca-certificate.crt`.toString()
// ),
ca: process.env.CA_CERT,
},
})
.on('connect', () => {
console.log('connected to the database!')
})
.on('error', (err) => {
console.log('error connecting to database ', err)
})
config.envで、次のようにする必要がありました:
CA_CERT="-----BEGIN CERTIFICATE-----\nVALUES HERE WITH NO SPACES AND A \n
AFTER EACH LINE\n-----END CERTIFICATE-----"
それを機能させるには、1行の文字列として保持する必要がありました。しかし、私はついに接続することになりました
{rejectUnauthorized:true}
デジタルオーシャンアプリプラットフォーム環境変数については、二重引用符を含むすべてをコピーしてそこに貼り付けました。うまく機能しているようです。ただし、7ドルの開発データベースでこの設定をtrueに設定することはできないと思います。ダウンロードするCA証明書を見つけるには、管理対象にアップグレードする必要がありました。