Javascript Sequelize不更新表中的行
我第一次使用sequelize。我的数据库中有一个名为Javascript Sequelize不更新表中的行,javascript,node.js,orm,sequelize.js,Javascript,Node.js,Orm,Sequelize.js,我第一次使用sequelize。我的数据库中有一个名为feed的表,表中有ID、caption和url列。在我的控制器中,我有一个简单的函数,用于更新表中的一行: router.patch('/:id', requireAuth, async (req: Request, res: Response) => { let { id } = req.params; const item = await FeedItem.update({ .
feed
的表,表中有ID
、caption
和url
列。在我的控制器中,我有一个简单的函数,用于更新表中的一行:
router.patch('/:id',
requireAuth,
async (req: Request, res: Response) => {
let { id } = req.params;
const item = await FeedItem.update({ ...req.body }, {
where: {
id: id
}
});
if (item === null) {
return res.status(404).send({ message: 'Feed not found' });
}
res.send(item);
});
我发送的json正文如下所示:
{
"caption": "NewTest",
"url": "Newtest.jpg"
}
我看到控制台中正确发送了数据,但当我使用id 2发布到端点时,我得到了响应:
[
1
]
我还可以在数据库中看到,该行尚未更新。
我在这里做错了什么,如何更新表中的一行并返回新的更新值?
FeedItem.update
方法返回受影响行的计数。这就是为什么您会得到1
。如果您需要FeedItem
实例本身,您可以首先检索它并更新实例:
let feedItem = await FeedItem.findById(id);
if (!feedItem) {
return res.status(404).send({ message: 'Feed not found' });
}
feedItem = await feedItem.updateAttributes(req.body);
return res.send(feedItem);
FeedItem.update
方法返回受影响行的计数。这就是为什么您会得到1
。如果您需要FeedItem
实例本身,您可以首先检索它并更新实例:
let feedItem = await FeedItem.findById(id);
if (!feedItem) {
return res.status(404).send({ message: 'Feed not found' });
}
feedItem = await feedItem.updateAttributes(req.body);
return res.send(feedItem);
但是,我想知道为什么在运行updated myself时该行没有更新看起来代码一切正常,它必须更新数据库中的记录但是,我想知道为什么在运行updated myself时该行没有更新看起来代码一切正常,它必须更新数据库中的记录