从NodeJS ExpressJS中的req.body中删除变量

时间:2015-05-12 10:15:59

标签: javascript json node.js express request

我收到一个包含大量信息的JSON,但我想删除一个特定的数据,例如,如果我收到变量名,我想在我的数据库中添加我的JSON之前删除这个变量。这是我的功能POST:

app.post("/:coleccion", function (req, res, next) {
POST
    if(req.body.name)
            // Here I need delete "name" if I receive this variable <------
    req.collection.insert(req.body, {}, function (e, result) {
        if(e) return next(e);
        res.send(result);
    });
});

2 个答案:

答案 0 :(得分:9)

delete req.body.name

应该在javascript对象中工作

检查How do I remove a property from a JavaScript object?

答案 1 :(得分:2)

我会劝你只选择你真正想要的属性,而不是仅删除那些你不喜欢的属性。否则,客户端可以发送它想要的任何内容,包括以$开头的字段,这些字段将由MongoDB进行特殊处理。

这是最简单的方法:

var data = {
  email: req.body.email,
  age: req.body.age,
  gender: req.body.gender
}

req.collection.insert(data, ...)

您也可以使用Underscore.js来完成这项工作:

var data = _.pick(req.body, 'email', 'age', 'gender')

req.collection.insert(data, ...)