Какое возвращаемое значение sequelize при обновлении?

#node.js #express #sequelize.js

#node.js #выразить #sequelize.js

Вопрос:

Я пишу API в expressjs с последовательностью. Но у меня возникла проблема с возвращаемым значением при обновлении!

Я следую руководству по Интернету, но он получил ошибку num=[1] , когда num=1 не обновил успех!

 exports.update = (req, res) => {
  const { id } = req.params;

  Post.update(req.body, {
    where: { id }
  })
    .then((num) => {
      if (num === 1) {
        res.send({
          message: 'Post was updated successfully.'
        });
      }
      else {
        res.send({
          message: `Cannot update Post with id=${id}. Maybe Post was not found or req.body is empty!`
        });
      }
    })
    .catch((err) => {
      res.status(500).send({
        message: `Error updating Post with id=${id}`
      });
    });
};
  

Итак, какое возвращаемое значение после вызова метода обновления? и как мне это решить? Спасибо.

Комментарии:

1. вы можете попробовать console.log(num) и посмотреть, какие данные возвращаются при успешном обновлении данных

Ответ №1:

Документ sequelize обновления

публичное статическое асинхронное обновление (значения: объект, параметры: объект): Обещание<Массив<число, число>>

Обещание <Массив<число, число>>
Обещание возвращает массив с одним или двумя элементами. Первым элементом всегда является количество затронутых строк, в то время как второй элемент — это фактические затронутые строки (поддерживается только в postgres с параметрами.возвращает true).

Таким образом, он не вернет только число. вам нужно следовать документу.

Чтобы разрешить

 .then((nums) => {
 const num = nums[0]
 .....