Node.js等待postgresql错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js等待postgresql错误相关的知识,希望对你有一定的参考价值。
我使用express和PostgreSql。
我的项目文件夹:
-Model
-Visitor.js
-app.js
我已将postgresql与pg连接,并且我已经使用查询进行了测试。它运行良好。但是,在Visitor.js文件上有一个查询。
var visitor = function() {
this.add = function() {
var ret = false;
db.query({text: 'INSERT INTO visitor(visitorid, data, status) VALUES($1, $2, $3)', values:[id, JSON.stringify(data), "1"]}, function (err, response) {
if(!err) {
ret = true;
}
});
return ret;
}
}
此查询始终在我的表中插入一行但返回false。此函数应等待查询结束。我该怎么做 ?
答案
你应该等待一个承诺
this.add = function() {
return new Promise((resolve, reject) => {
db.query({text: 'INSERT INTO visitor(visitorid, data, status) VALUES($1, $2, $3)', values:[id, JSON.stringify(data), "1"]}, function (err, response) {
if(!err)
resolve(response)
else
reject(err)
});
})
}
然后你可以在visitor.add函数上等待
编辑如果您正在使用pg库:如Getting Started所示,您可以直接等待client.query函数,因为它在您不提供回调时返回Promise
const { Client } = require('pg')
const client = new Client()
await client.connect()
const res = await client.query('SELECT $1::text as message', ['Hello world!'])
console.log(res.rows[0].message) // Hello world!
await client.end()
以上是关于Node.js等待postgresql错误的主要内容,如果未能解决你的问题,请参考以下文章
Postman 卡在“GET”请求中,在使用 PostgreSQL 作为后端的 Node JS 中给出“无法获得响应错误:读取 ECONNRESET”的错误