【发布时间】:2020-08-08 05:39:17
【问题描述】:
所以我最近在 heroku.com 创建了一个帐户并创建了一个 PostgreSQL 数据库。首先,我想测试是否可以将某些内容存储到数据库中(已经创建了一个没有 node.js 的表),但是由于某些奇怪的原因,我的 dbClient.query 的回调函数从未执行。然后我意识到数据库没有连接到我的代码。我的密码、主机等应该都是正确的,我可以从外部站点连接,但不能从我的 node.js 代码连接。
这是我的代码:
var express = require("express");
var pg = require("pg");
var bodyParser = require("body-parser");
var CON_STRING = process.env.DB_CON_STRING;
if (CON_STRING == undefined) {
console.log("Error: Environment variable DB_CON_STRING not set!");
process.exit(1);
}
pg.defaults.ssl = true;
var dbClient = new pg.Client(CON_STRING);
dbClient.connect();
var urlencodedParser = bodyParser.urlencoded({
extended: false
});
var PORT = 3000;
var app = express();
app.set("views", "views");
app.set("view engine", "pug");
app.get("/shoppingitems", function (req, res) {
res.render("shoppingitems")
});
app.post("/shoppingitems", urlencodedParser, function(req, res){
var shoppingItem = req.body.shoppingItem;
dbClient.query("INSERT INTO shoppinglist (title) VALUES ($1)", [shoppingItem], function(dbError, dbResponse){
console.log("function called!");
res.redirect("/shoppingitems");
})
console.log("test");
})
app.listen(PORT, function () {
console.log(`Shopping App listening on Port ${PORT}`);
});
它不适用于 dbClient.query 的其他配置。
【问题讨论】:
标签: node.js postgresql heroku