gpt4 book ai didi

javascript - 我的回调是错误的 - 我正在返回对错误对象的响应 - Nodejs

转载 作者:行者123 更新时间:2023-12-02 17:56:48 25 4
gpt4 key购买 nike

我正在尝试学习node并了解回调是如何工作的。我通过尝试使用异步库来做到这一点。我试图通过两个单独的调用来访问我的数据库,并使用异步库让我知道我的对象何时准备好构建。这是我的 aysnc 代码:

  async.parallel({
one: function(callback) {
getUser(id, callback);
},
two: function(callback) {
getUserServices(id, callback);
}
}, function(err, results) {
if(err) {
console.log(err);
new Error();
}
res.json(result);
});

这是我调用数据库的函数的样子。两者的功能基本相同:

var getUser = function(id, callback) {
var query = client.query('SELECT * FROM USERS WHERE USER_ID=$1', [id]);
query.on('row', function(row, result) {
result.addRow(row);
});
query.on('end', function(result) {
callback(result);
});
};

我的代码命中db并返回user,但是当它返回到async代码时,user 位于 err 对象中。我究竟做错了什么?如何正确设置回调?

最佳答案

正如damphat所指出的,您的代码应该是

//additionally, handle errors 
query.on('error', function(err){
callback(err) // The first argument to callback should be an error object
})

query.on('end', function(result){
callback(null, result) //passing null error object
})

关于javascript - 我的回调是错误的 - 我正在返回对错误对象的响应 - Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20904606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com