2012-03-31 93 views
1

我有存储在MongoDB的两个集合发现:标记和兴趣点Node.js的猫鼬和使用与request.params

MarkerID是在兴趣点的外键和标记主键。

我要具有一定的标记ID返回的POI

我可以在MongoDB的控制台做到这一点:

>db.PoiPois.find({"MarkerID":78}) 

我也可以使用快件在Node.js的应用程序中的硬编码查询做到这一点REST风格的路线和猫鼬:

app.get('/pois/:markerid', function(req, res) { 
poiModel.find({MarkerID:78}, function (err,pois) { 
     res.contentType('json'); 
    res.json({ 
     success: true, 
     data: pois 

    }); 
}); 
}); 

我想更换一个动态的一个硬编码的查询,使用markerid请求参数,以便做到以下几点:

poiModel.find({MarkerID:req.params.markerid}, function (err,pois) { 

但这不起作用(返回空json)。

我哪里错了?感谢您的帮助

回答

2

我猜req.params.markerid是一个字符串。尝试将其转换为整数。

+1

是。而最简单的方法是'{MarkerID:+ req.params.markerid}' – danmactough 2012-04-01 03:05:23

+0

@danmactough:哇,好戏!它可靠吗?任何陷阱(与'parseInt'相比)? :) – 2012-04-01 03:08:37

+0

塞尔吉奥,我想我会很舒服地使用它,我知道我希望给它什么样的字符串。从某种意义上说,它比'parseInt'更“可靠”,因为具有前导零的字符串仍然使用基数10进行转换。此外,它将转换带有小数的字符串,如'parseFloat'。实际上,在db查询中,我会在查询参数之前执行一些验证。 – danmactough 2012-04-02 16:43:29