2014-11-03 45 views
0

對不起,很新的問題。我已經安裝了Node,Express和MongoDB。我創建了一個基本的路由規則,並在嘗試將參數作爲這樣的:從Node Express請求參數到Mongo

var express = require('express'); 
var router = express.Router(); 

router.get('/req_summary/:approved', function(req, res) { 
    var db = req.db; 
    db.collection('req_summary').find({approved:req.params.approved}).toArray(function (err, items) { 
     res.json(items); 
    }); 
}); 

module.exports = router; 

我在蒙戈文檔中包含的字段:

approved:0 

從我的路由器來的請求被處理的值一個字符串,因此正在尋找:

approved:"0" 

如何傳遞參數從我的路由器REQ對象蒙戈的數量,而不是一個字符串?

回答

0

您從HTTP請求收到的所有參數都是字符串,因此您必須將其解析爲正確的數據類型/ JSON對象。

在你的情況,你必須使用parseInt方法或創建一個號碼:

var express = require('express'); 
var router = express.Router(); 

router.get('/req_summary/:approved', function(req, res) { 
    var db = req.db; 

    var approved_value = parseInt(req.params.approved); 

    // or 
    // var approved_value = Number(req.params.approved); 

    db.collection('req_summary').find({"approved":approved_value}).toArray(function (err, items) { 
     res.json(items); 
    }); 
}); 

module.exports = router; 

你可以看一下這個文檔頁面:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

因爲它是在上下文中一個很常見的問題MongoDB,你也必須創建一個ObjectId,Long或其他任何BSON對象。您可以從bson模塊導入。 (見https://www.npmjs.org/package/bson

相關問題