Javascript 如何自动创建REST API node.js/MongoDB
我正在运行一个node.js服务器,它处理REST Api调用。 这些调用的响应将是一个或一个MongoDB对象列表(JSON) 我已经阅读了有关参数以及如何处理它们的内容。但有没有办法自动做到这一点 假设我有一个用户集合:Javascript 如何自动创建REST API node.js/MongoDB,javascript,node.js,mongodb,rest,Javascript,Node.js,Mongodb,Rest,我正在运行一个node.js服务器,它处理REST Api调用。 这些调用的响应将是一个或一个MongoDB对象列表(JSON) 我已经阅读了有关参数以及如何处理它们的内容。但有没有办法自动做到这一点 假设我有一个用户集合: name: String, hobby: String, age: Number 现在,我想获得年龄=18岁的所有用户的列表 我知道我可以恢复如下参数: url: http://localhost:3000/user?age=18&hobby=something
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){ ... });
}
假设用户有10个不同的属性,我有15个不同的集合,你能澄清一下吗?我不想手动从URI恢复每个参数,并在mongoDB的find()方法中使用它,而只是调用find()方法使用URI中给定的任何参数。也许我想得太多了,我可以尝试检索每个参数并将其交给find方法,即使它为NULL/未定义?那么为什么不能只执行
User.find(req.query,cb)
由于req.query
对象将只具有查询字符串中定义的属性,不能多也不能少。我可以!谢谢这就是我不知道的:D也许我应该读更多关于mongoDB find和req.query的内容,而不是尝试为restapi寻找示例!你可以加一个答案,如果你愿意,我会把它标为正确的。我不确定这是什么。