使用Express和Mongoose,我正在写一条更新路线,我似乎已经用这条路线撞墙了。我试图通过以下方式找到所请求的对象:
router.patch('/:insiderId', (req, res) => {
Insider.findById(req.params.insiderId)
.then(insider => {
insider = Object.assign({}, insider, req.body);
insider
.save()
.then(updated => {
res.json(updated);
})
.catch(err =>
res
.status(400)
.json({ error: 'error updating insider', originalError: err })
);
})
.catch(err => {
console.error(err);
res.status(400).json({
error: 'error finding insider to update.',
originalError: err
});
});
});
但我仍然在说明Cast to ObjectId failed for value \"5b16d9e9119bef28908f49c\" at path \"_id\" for model \"insiders\"
我做了一点阅读,并认为findById
会自动投射目标,但似乎并没有这样做。
我的代码错了吗?