Sequelize-更新查询并返回:true成功,但返回未定义

时间:2019-11-15 19:44:25

标签: javascript sql node.js express sequelize.js

我具有以下功能,可用于将URL更新为用户的个人资料照片-

const updateProfilePic = async (req, res) => {
  const userId = req.param("id");
  if (userId) {
    const targetPath = `...`;
    User.update(
      {
        profilePic: targetPath
      },
      { where: { id: userId }, returning: true }
    )
      .then(updatedUser => {
        console.log(updatedUser);
        res.json(updatedUser);
      })
      .catch(error => {
        console.log(error);
        res.status(400).send({ error: error });
      });
  }
};

这将成功更新数据库-但是then获得[ undefined, 1 ]作为updatedUser而不是用户数据-如果删除returning : true标志,它将仅返回{{ 1}}。我不确定自己在做什么错-我正在尝试获取用户对象,以便将其传递给客户端。

1 个答案:

答案 0 :(得分:1)

我想您不是在使用Postgres。

仅在Postgres中支持选项中的returning属性。

Update()返回包含一个或两个元素的数组。第一个元素是受影响的行数。 postgres仅支持第二个数组元素,并将返回更新后的行。

因此,您将得到返回的 1 ,即更新的行数。

Docs