【发布时间】:2017-05-19 23:51:22
【问题描述】:
我正在使用 ExpressJS,需要在我的代码上运行和传递 ESLint 规则。有一个规则“consistent-return”,会抛出这样的代码:
function getUsers( req, res, next ){
if( req.userIds.length === 0 ){
return next();
}
collection.find({"_id": {$in: req.userIds}}, function( err, doc ){
if( err ){
return next();
}
req.users = doc;
return next();
});//find()
}//getUsers()
现在,此代码给出“一致返回”错误。似乎有 2 个可能的更改可以消除此错误,我不确定哪个是正确的。
function getUsers( req, res, next ){
if( req.userIds.length === 0 ){
return next();
}
collection.find({"_id": {$in: req.userIds}}, function( err, doc ){
if( err ){
return next();
}
req.users = doc;
return next();
});//find()
return false; // adding return false passes the ESLint error
}//getUsers()
或
function getUsers( req, res, next ){
if( req.userIds.length === 0 ){
return next();
}
// adding return in below line passes the ESLint error.
return collection.find({"_id": {$in: req.userIds}}, function( err, doc ){
if( err ){
return next();
}
req.users = doc;
return next();
});//find()
}//getUsers()
请告知哪种方法是正确的。谢谢。
【问题讨论】:
标签: javascript node.js express asynchronous eslint