2012-03-31 97 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