我使用node.js和mongodb进行地理定位应用,而req Param返回一个空数组
exports.findpressure = function(req, res) {
var queryObject = req.param('q');
console.log(queryObject);
db.collection('Pressure', function(err, collection) {
collection.find( { loc: { $near :[ req.param('q') ] , $maxDistance : 5 }},{"value" : 1, _id : 0}) .sort({_id : -1}).limit(1).toArray(function(err, items)
{
res.send(items);
});
});
};
经度和纬度值显示在控制台
中Listening on port 3000...
Connected to 'weather' database
8.9068256,52.019347499999995
GET /pressure?q=8.9068256,52.019347499999995 200 27ms - 2b
网址如下
http://localhost:3000/pressure?q=8.9068256,52.019347499999995
如果我使用像8.9068256,52.019347499999995这样的值从数据库中获取值,但如果我使用req.param(' q')则返回一个空数组
答案 0 :(得分:2)
您似乎将这些值作为查询字符串的一部分传递。 req.query.q
应包含逗号分隔值
编辑:看req.param()它应该抓住那个查询值。你期望这些值是一个字符串吗?它们应该是单独的字符串吗至少可能需要给出该数组req.param('q').split(',')
。如果他们需要数字,req.param('q').split(',').map(function(val) {return +val;});
。