Javascript 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({ .

我第一次使用sequelize。我的数据库中有一个名为
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时该行没有更新看起来代码一切正常,它必须更新数据库中的记录