我有以下代码:
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
,我想知道我是否已将该功能定义为正确办法。代码是否有效或是否必须以不同的方式将参数传递给回调?
答案 0 :(得分:2)
如果您收到错误消息,则需要将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.query
:
exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", callback);
}