#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:
публичное статическое асинхронное обновление (значения: объект, параметры: объект): Обещание<Массив<число, число>>
Обещание <Массив<число, число>>
Обещание возвращает массив с одним или двумя элементами. Первым элементом всегда является количество затронутых строк, в то время как второй элемент — это фактические затронутые строки (поддерживается только в postgres с параметрами.возвращает true).
Таким образом, он не вернет только число. вам нужно следовать документу.
Чтобы разрешить
.then((nums) => {
const num = nums[0]
.....