如何从 Express 连接到 Heroku PostgresQL 数据库?

How to connect to Heroku PostgresQL database from Express?

我正在尝试将 PERN 应用程序部署到 Heroku。我创建了一个 Heroku Postgres 数据库并将我的 React 前端部署 - Node/Express 后端应用程序到 Heroku。

如何从我的 Express 代码连接到数据库?到目前为止,当应用程序仍在本地时,我一直在使用 npm pg。

我似乎无法在互联网上找到任何关于此的信息...

您需要从 postgre 模块导入 Pool,然后设置连接字符串。它应该看起来像这样:

const {Pool} = require('pg');

const connectStr = process.env.DATABASE_URL;
const pool = new Pool({
    connectionString: connectStr,
    ssl: true
});

然后你可以用类似这样的东西查询数据库:

exports.dbAction = function(req, res) {

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

pool.query("select * from exampleTable", (err, 
results) => {
        if (err) {
            console.log(err);
            throw err;
        }
    res.json(results.rows);
    });
  
}

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; 指示 Node 允许不受信任的证书(不受信任 = 未经证书颁发机构验证)。这不是生产模式下的推荐设置。但是,在开发过程中,这是一个方便的解决方法。