我有以下代码:
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.query
:exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", callback);
}