如何从 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 允许不受信任的证书(不受信任 = 未经证书颁发机构验证)。这不是生产模式下的推荐设置。但是,在开发过程中,这是一个方便的解决方法。
我正在尝试将 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 允许不受信任的证书(不受信任 = 未经证书颁发机构验证)。这不是生产模式下的推荐设置。但是,在开发过程中,这是一个方便的解决方法。