快速查询因整数而失败
Express query fails with integers
我是 运行 一个 Express 服务器,用于根据本指南 https://devcenter.heroku.com/articles/mean-apps-restful-api
基于 MongoDB 创建端点
在尝试定义查询字符串时,我有以下功能:
app.get("/contacts", function(req, res) {
db.collection(CONTACTS_COLLECTION).find(req.query).toArray(function(err, docs) {
res.status(200).json(docs);
});
});
对于使用查询参数为字符串的查询,这可以按预期工作,例如/contacts?name=Bob
。但是,如果我查询的字段恰好是一个整数(例如使用查询 /contacts?age=21
),我发现响应生成一个空数组... []
否定那个。 http 请求将所有内容解释为字符串。
中找到了解决方案
请求查询中的所有内容都是字符串,因此如果您将 url 设置为 age=21,则必须将其解析为整数。
app.get("/contacts", function(req, res) {
var condition = {};
if(req.query.age) {
condition.age = parseInt(req.query.age, 10);
}
db.collection(CONTACTS_COLLECTION).find(condition).toArray(function(err, docs) {
res.status(200).json(docs);
});
});
我是 运行 一个 Express 服务器,用于根据本指南 https://devcenter.heroku.com/articles/mean-apps-restful-api
基于 MongoDB 创建端点在尝试定义查询字符串时,我有以下功能:
app.get("/contacts", function(req, res) {
db.collection(CONTACTS_COLLECTION).find(req.query).toArray(function(err, docs) {
res.status(200).json(docs);
});
});
对于使用查询参数为字符串的查询,这可以按预期工作,例如/contacts?name=Bob
。但是,如果我查询的字段恰好是一个整数(例如使用查询 /contacts?age=21
),我发现响应生成一个空数组... []
否定那个。 http 请求将所有内容解释为字符串。
中找到了解决方案请求查询中的所有内容都是字符串,因此如果您将 url 设置为 age=21,则必须将其解析为整数。
app.get("/contacts", function(req, res) {
var condition = {};
if(req.query.age) {
condition.age = parseInt(req.query.age, 10);
}
db.collection(CONTACTS_COLLECTION).find(condition).toArray(function(err, docs) {
res.status(200).json(docs);
});
});