如何自动创建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谢谢!
答
由于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){ ... });
}
_assume用户有10个不同的属性,我有15个不同的Collections_,可以请你澄清一下吗? – chridam
我不想手动从URI中恢复每个参数,并在mongoDB的find()方法中使用它,而只是使用URI中给出的任何参数调用find()方法。 – HideAndSeek
也许我过时了这一点,我可以试着检索每个参数,只要将它提供给find方法,即使它的NULL/undefined? – HideAndSeek