猿问

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

]

我还可以在数据库中看到该行尚未更新。我在这里做错了什么,如何更新表中的一行并返回新的更新值?


一只名叫tom的猫
浏览 112回答 1
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);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答