0

我有一个在 Express 上运行的 NodeJS 服务器。我正在使用 MongoSkin 将我的 Web 服务器连接到 MongoDB。我有以下路线:

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

router.post('/add', function(req, res){
    var db = req.db;
    db.collection('products').insert(req.body, function(err){
        res.send(err);
    });
});

module.exports = router; 

上面创建了一个端点,它将接受 POST 请求http://domain.com/add。现在,此端点将保存 AJAX 请求中包含的所有参数。我无法控制要保存在数据库中的键/值对。

使用 PHP,您必须在脚本中显式查找参数才能使用它们,即:

$param1 = $.POST['param1'];
$param2 = $.POST['param2'];
$param3 = $.POST['param3'];  
// Do something with these values

我将如何使用 NodeJS 做到这一点?

4

1 回答 1

4

req.body只是一个普通的js对象,所以应该和PHP一模一样。假设您的 post 请求具有以下值:param1=1,param2=2,param3=invalid. 然后req.body将有以下形式:

{
    param1: 1,
    param2: 2,
    param3: "invalid"    
}

因此,您只需使用所需的值创建一个新对象:

var allowed_params = {
    param1: req.body.param1, // Or if you prefer req.body["param1"]
    param2: req.body.param2
};
db.collection('products').insert(allowed_params, callback_func);
于 2014-08-01T15:00:37.333 回答