我有以下代码:
User.findById(id, function(err, user) {
//blah blah
});
findById
方法在 User
模块中定义。它看起来像这样:
exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", function (err, rows, fields) {
if (err) throw err;
callback(rows);
});
}
由于对 findById()
方法的回调采用两个参数,即 err
和 user
,我想知道我是否'我们以正确的方式定义了该函数。代码可以工作还是我必须以不同的方式将参数传递给回调?
最佳答案
如果出现错误,则需要将 err
传递给回调,否则传递 null
作为第一个参数,然后传递 rows
:
exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", function (err, rows, fields) {
if (err) return callback( err );
return callback(null, rows);
});
}
或者,由于您没有在 connection.query
回调中执行任何转换/修改,因此您可以直接将 findById
回调传递给 connection .查询
:
exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", callback);
}
关于javascript - 将错误返回到 Node.js 中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497906/