【发布时间】:2019-03-22 13:03:22
【问题描述】:
如果 sequelize 正确更新了一行,我会尝试将结果返回给我的控制器。它在当前代码中有效,但无论是失败还是有效,我都只能返回 true。
我尝试了几种我认为可能可行的不同方式,但除非我硬编码“返回 true”,否则控制器中的所有内容都返回未定义
控制器
const {promisify} = require('util');
const pageSection = promisify(db.pageSection);
exports.updateForm = async function (req, res) {
let result;
try {
result = await pageSection.updateSection(req);
} catch (err) {
console.log('** NOT GOOD **', err);
}
return res.send(result);
}
型号
pageSection.updateSection = function (req) {
var result;
pageSection.update ({
title: req.body.title,
description: req.body.description,
icon: req.body.icon
}, {
where: {
id: req.body.id
}
})
.then( updatedRow => {
return updatedRow; //Undefined in controller
sendResult( updatedRow ); //Still undefined
result = updatedRow; // Still undefined
})
.catch(err => {
console.log('Page Model Error: ', err);
})
function sendResult ( updatedRow ) {
if ( updatedRow ) { return true }
} //Returns undefined
return true; //Only thing that works
return result; //Undefined
}
【问题讨论】:
标签: express sequelize.js