将错误返回给Node.js中的回调

时间:2014-08-26 04:10:28

标签: javascript node.js

我有以下代码:

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()方法的回调有两个参数,即erruser,我想知道我是否已将该功能定义为正确办法。代码是否有效或是否必须以不同的方式将参数传递给回调?

1 个答案:

答案 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);
}