我正在使用 mean.io 制作体育赛事管理系统。我正在尝试使用 rest api 更新模型 Player,它从 mongoose 抛出此错误:
{ _id: 5411c79895d600440c698fa1,
email: 'abc@bcd.com',
name: 'James Bond',
username: 'james.bond',
games: [ 5411bd54786cfe2420f1e27a ],
teams: [],
roles: [ 'authenticated' ] }
[TypeError: Cannot read property '_id' of undefined]
PUT /api/players/5411c79895d600440c698fa1 500 199.402 ms - 36
我还尝试从播放器中删除 _id 属性,但它也不起作用。我用来更新模型播放器的方法是:
exports.update = function(req, res) {
var player = req.player;
player = _.extend(player, req.body);
console.log(player);
Player.findOneAndUpdate(req.params.playerId, player,{new:true}, function (err, updatedPlayer) {
console.log(err);
if (err) {
return res.status(500).json({
error: 'Cannot update the player'
});
}
res.json(updatedPlayer);
});
而且如果我使用model.save
默认包article
中提供的方法mean.io
,它会显示另一个错误。我user
在播放器包app.js
文件中扩展了模型。因此,每当我尝试更新一个字段时,我在其中声明的字段app.js
都是必需的,并且会抛出来自 mongoose 的 path required 错误。