node.js - 通过多种条件获取资源的最佳实践是什么?

标签 node.js mongodb express

使用 Express.js 和 MongoDB,我想在没有带有请求 url 的查询参数时获取所有教师列表,我按照如下条件执行操作,例如找到查询时然后执行此操作,否则执行此操作,是否高效?或者有什么好的建议。提前致谢

export const getTeachers = (req, res, next) => {
    if(req.query.course_id) {
        try {
            Teacher.find({'course_ids':req.query.course_id}).exec()
                .then((teachers) => {
                    if (!teachers) {
                        return next(errorPlaceHolder(403, false, 'no teacher found'));
                    }
                    return res.status(200).json({
                        success: true,
                        message: 'Read course teacher',
                        teachers: teachers
                    })
                })
                .catch((error) => {
                    next(error);
                });
        } catch (e) {
            res.status(500).json({
                success: false,
                message: 'Error in get Teachers',
                error: e
            });
        }
    }else{
        try {
            Teacher.find().exec()
                .then((teachers) => {
                    if (!teachers) {
                        return next(errorPlaceHolder(403, false, 'no teacher found'));
                    }
                    return res.status(200).json({
                        success: true,
                        message: 'Read all teacher',
                        teachers: teachers
                    })
                })
                .catch((error) => {
                    next(error);
                });
        } catch (e) {
            res.status(500).json({
                success: false,
                message: 'Error in get Teachers',
                error: e
            });
        }
    }
}

最佳答案

你可以这样优化代码

var findCriteria = {}
if(req.query.course_id) {
   findCriteria['course_ids'] = req.query.course_id;
}

Teacher.find(findCriteria).exec()
                    .then((teachers) => {

 })

关于node.js - 通过多种条件获取资源的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40520532/

相关文章:

node.js - Docker - 无法解析 '/usr/src/app/src' 中的 Node 模块

javascript - 由于对目录进行非法操作,带有 node-s3-client 的 DownloadDir 失败

mongodb - 为什么我的MongoDB $ or查询不起作用?

javascript - Node - 如何在 POST 路由中间件中访问 Req

javascript - Cookie 未通过

javascript - 是否可以使用 Node.js 或其他一些服务器端 JavaScript 方法开发 Google App Engine Web 应用程序?

javascript - 当我有键和值时,为什么会出现错误?

mongodb - ** 警告 : soft rlimits too low. 文件数为 256,应至少为 1000

linux - Mongo 报告 AWS 上空间不足

node.js - Multer 限制接受的图像