我在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;
以上创建的端点将接受http://domain.com/add
的POST请求。现在,此端点将保存AJAX请求中包含的所有参数。我无法控制我想要保存在数据库中的键/值对。
使用PHP,您必须在脚本中显式查找参数才能使用它们,即:
$param1 = $.POST['param1'];
$param2 = $.POST['param2'];
$param3 = $.POST['param3'];
// Do something with these values
我如何使用NodeJS执行此操作?
答案 0 :(得分:4)
req.body
只是一个普通的js对象,因此它应该与PHP完全相同。假设您的帖子请求具有以下值: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);