简体   繁体   English

更漂亮的方式来编写此查询?

[英]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.

相关问题 有没有比这更“漂亮”的方法来提取 [[PromiseResult]] ? - Is there a "prettier" way to extract the [[PromiseResult]] than this? 在 React 项目中使用 Prettier 安装 ESlint 的正确方法 - Proper way of Installing ESlint with Prettier in a React Project 如何以更好的方式编写此查询字符串? - How to write this query string in better way? 在 reactJS 中编写媒体查询的最佳方式 - Best way to write media query in reactJS 更漂亮地写入所有文件而不明确指定支持的文件扩展名? - Prettier write all files without explicitly specify supported file extension? 如何让 ESLint --fix 也运行更漂亮 --write - How to get ESLint --fix to also run prettier --write 有没有办法阻止 prettier / prettier-now 将 function arguments 换行 - Is there a way to stop prettier / prettier-now from breaking function arguments into new lines Visual Studio 2017 是否有更漂亮的等价物? (或一种设置类似内容的方法) - Is there a Prettier equivalent for Visual Studio 2017? (Or a way to set up something similar) 使用 mongodb 在 GET 请求中编写 .find 查询的最佳方法是什么? - What is the best way to write a .find query in a GET request with mongodb? 存在多个查询参数时编写代码的更好方法 - better way to write code when multiple query parameters are present
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM