我最近将Node.js应用程序从MySQL转换为PostgresDB。这是我的(index)app.js文件,用于连接数据库和我正在执行的查询。
const {Pool, Client} = require('pg');
const client = new Pool({
user: 'postegres',
host: 'localhost',
database: 'Mydb',
password: 'pass',
port: 5432,
})
app.get('/', function(req, res) {
client.connect();
var sql = "SELECT COUNT(*) as total FROM Reviews.eatingReviews";
client.query(sql, function(err, result){
if (err) throw err;
eatTotalReviews = result[0].total;
var sql2 = "SELECT COUNT(*) as total2 FROM Reviews.guideReviews"
client.query(sql2, function(err, result){
if (err) throw err;
guideTotalReviews = result[0].total2;
res.render('guides',
{eatTotalReviews: eatTotalReviews,
guideTotalReviews:guideTotalReviews});
});
});
client.end();
});
我的应用程序与MySQL完美配合。我进行了切换,当我通过查询路由到任何页面时,它现在挂起。我已将pgAdmin配置为按建议在固定端口5432上进行侦听。我检查了密码以确保它们是正确的。我的pgadmin日志显示“代码400:消息错误的请求语法”,该页面永远不会加载。谁能指导我哪里会出问题?我真的很感谢您的协助!我的语法出了什么问题?
这是指向node.js postegres文档的链接
https://node-postgres.com/features/connecting
我跟随了!
答案 0 :(得分:0)
您不会得到任何结果,因为他的client.end()
在client.query
的回调函数之前运行。
您应该使用await
方式或将client.end()
放在client.query
的回调中。