如何通过Express中的路由器获取其他属性的元素?

时间:2017-09-26 19:14:54

标签: node.js rest express

我是新来表达和尝试构建一个restful api,它通过其他属性而不是id来获取元素。

在我发现的教程中,它们通常按id获取元素,示例代码可以是:

router.route('/something/:something_id')

    .get(function(req, res) {
        Something.findById(req.params.something_id, function(err, something) {
            if (err)
                res.send(err);

            res.json(something);
        });
    });

架构可能如下:

var SomethingSchema = new Schema({
    name: String,
    color: String
});

但是我试图通过其他属性来获取,比如

router.route('/something/:something_color')

    .get(function(req, res) {
        // get all somethings with color = something_color
    });

1 个答案:

答案 0 :(得分:2)

你需要学习mongodb和/或mongoose,它实际上是非常明确的。有Schema.find函数可以完全按照您的要求执行操作。

router.route('/something/:something_color')

.get(function(req, res) {
    // get all somethings with color = something_color
    Something.find({ color: req.params.something_color }, function(err, something) {
        if (err)
            res.send(err);

        res.json(something);
    });
});

我刚刚在google和第一页上搜索了mongodb express我找到了这个教程:https://zellwk.com/blog/crud-express-mongodb/

希望有所帮助