快递/猫鼬把req.body问题?

时间:2014-11-30 03:04:44

标签: javascript node.js mongodb express

在localhost上工作正常,但是当我把它放在实时服务器上时,put请求不会粘在数据库上。特别是req.body,我必须定义我要发送的属性{points: req.body.points}

update: function(req, res) {
    console.log("PUT received: " + req.body.points);
    models.Player.update({ _id: req.params.pid }, req.body, function(err, player) {
        if (err) {
            res.json({error: 'Player not found.'});
        } else {
            res.json(player);
        }
    });
},

如果我将对象写入如下更新,那么我可以让上述工作在实时服务器上的唯一方法是。这不是很好,因为应用程序更新的不仅仅是积分,它可能会发送更新{player_name: req.body.player_name},我知道我的意思。

我不明白为什么req.body不起作用,通常会这样做!!

update: function(req, res) {
    console.log("PUT received: " + req.body.points);
    models.Player.update({ _id: req.params.pid }, {points: req.body.points}, function(err, player) {
        if (err) {
            res.json({error: 'Player not found.'});
        } else {
            res.json(player);
        }
    });
},

编辑:我的快速解决方案就是这样做,但我宁愿只使用req.body对象,它是什么原因不起作用?

update: function(req, res) {
    var test = {
        player_name : req.body.player_name,
        player_picture : req.body.player_picture,
        bench : req.body.bench,
        points : req.body.points,
        rebounds : req.body.rebounds,
        steals : req.body.steals,
        blocks : req.body.blocks,
        fouls : req.body.fouls,
        team_id : req.body.team_id,
    }
    models.Player.update({ _id: req.params.pid }, test, function(err, player) {
        if (err) {
            res.json({error: 'Player not found.'});
        } else {
            res.json(player);
        }
    });
},

0 个答案:

没有答案