I have the following code:
User.findById(id, function(err, user) {
//blah blah
});
The findById method is defined in the User module. It looks like this:
exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", function (err, rows, fields) {
if (err) throw err;
callback(rows);
});
}
As the callback to the findById() method takes two parameters, namely, err and user, I'm wondering if I've defined the function in a proper way. Will the code work or do I have to pass the parameters to the callback in a different way?
If you get an error, you need to pass err to the callback, otherwise pass null as the first parameter and then your rows:
exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", function (err, rows, fields) {
if (err) return callback( err );
return callback(null, rows);
});
}
Alternatively, since you aren't doing any transformations/modifications in your connection.query callback, you can just pass the findById callback straight through to connection.query:
exports.findById = function(id,callback) {
connection.query("SELECT * FROM usertable", callback);
}