[英]Prettier way to write this query?
hi is there a nicer / prettier way to write this query? 嗨,有没有更好/更漂亮的方式来编写此查询?
exports.list = function(req, res) {
if (req.user.roles.indexOf('admin') == 1) {
Timesheet.find()
.sort('-created').populate('user', 'displayName').exec(function (err, timesheets) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(timesheets);
}
});
}
else {
Timesheet.find()
.where('user').equals(req.user.id)
.sort('-created').populate('user', 'displayName').exec(function (err, timesheets) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(timesheets);
}
});
}
};
only different is, if admin then add .where('user').equals(req.user.id) 唯一不同的是,如果管理员则添加.where('user')。equals(req.user.id)
To eliminate the duplicate code you can refactor the code to just alter the way the query is built based on whether the user is in the admin role: 要消除重复的代码,您可以重构代码以仅根据用户是否具有管理员角色来更改查询的构建方式:
exports.list = function(req, res) {
var query = Timesheet.find();
if (req.user.roles.indexOf('admin') !== 1) {
query = query.where('user').equals(req.user.id);
}
query.sort('-created').populate('user', 'displayName').exec(function(err, timesheets) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(timesheets);
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.