PostgresDB Casuing Nodejs应用程序挂起

时间:2018-09-28 22:51:47

标签: node.js postgresql debugging hang

我最近将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

我跟随了!

1 个答案:

答案 0 :(得分:0)

您不会得到任何结果,因为他的client.end()client.query的回调函数之前运行。

您应该使用await方式或将client.end()放在client.query的回调中。

Official examples