如何自动创建REST API node.js/MongoDB

问题描述:

我正在运行处理REST Api调用的node.js服务器。 这些调用的响应将是一个或MongoDB对象(JSON)的列表。如何自动创建REST API node.js/MongoDB

我已阅读过有关参数以及如何处理它们的内容。但有没有办法自动做到这一点?

可以说我有一个用户采集:

name: String, 
hobby: String, 
age: Number 

现在我想是年龄= 18的所有用户的列表。

我知道我能恢复参数如下:

url: http://localhost:3000/user?age=18&hobby=something 

var app = express(); 
app.get('/user', function (req,res) { 

    var age=req.query.age; 
    var hobby=req.query.hobby; 

    mondodbUser.find(...); 
} 

但假设用户有10个不同的属性,我有15个不同的类别。我不能动态地做到这一点?所以我不必恢复每个可能的参数?

我想能够使用所有给定参数的方式搜索MongoDB。

我希望我能够表达自己:D谢谢!

+0

_assume用户有10个不同的属性,我有15个不同的Collections_,可以请你澄清一下吗? – chridam

+0

我不想手动从URI中恢复每个参数,并在mongoDB的find()方法中使用它,而只是使用URI中给出的任何参数调用find()方法。 – HideAndSeek

+0

也许我过时了这一点,我可以试着检索每个参数,只要将它提供给find方法,即使它的NULL/undefined? – HideAndSeek

由于req.query返回查询字符串之后的JS对象进行解析,其中对象将具有在查询字符串定义的属性,例如:

/user?name=andrew&age=22

req.query将返回对象{ name: "andrew", age: "22" }

因此只要对象中的属性与底层集合文档模式匹配,它就可以用作find()方法参数。

然后,您可以做:

app.get('/user', function (req, res) { 
    User.find(req.query, function (err, users){ ... }); 
}