【问题标题】:Select Mongoose Model Based on Express Route根据 Express Route 选择 Mongoose 模型
【发布时间】:2015-09-08 20:42:57
【问题描述】:

我认为这可能是一个基本问题,但正在寻找最佳方法。

我正在构建一个快速应用程序,该应用程序应该根据路线路由到四种不同的 Mongoose 模型之一。

类似这样的:

app.get('/:trial', function(req, res){
    var trial = req.params.trial;
    trial.find(function(err, records) {
        if (err)
            res.send(err);

        res.json(records); // returns all trial records in JSON format
    });
});

我有 4 个猫鼬模型,分别命名为:trial1、trial2、trial3、trial4。我想要 URL 的 trial 参数来确定要查询哪个集合。显然上面的行不通,但是我应该怎么做而不是重写路由四次呢?

提前致谢!

【问题讨论】:

    标签: express routing mongoose


    【解决方案1】:

    您可以通过名称获取模型:

    var mongoose = require('mongoose');
    
    app.get('/:trial', function(req, res){
        var trial = req.params.trial;
        mongoose.Model(trial).find(function(err, records) {
            if (err) {
                // Return when we end the response here...
                return res.send(err);
            }
            res.json(records); // returns all trial records in JSON format
        });
    });
    

    根据情况,我会首先验证trial 的值(例如,请求/User 不会将所有用户转储到客户端)。

    【讨论】:

    • 太棒了。 mongoose.Model(trial) 正是我所需要的。谢谢!
    猜你喜欢
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2013-09-01
    相关资源
    最近更新 更多