【发布时间】:2019-11-06 10:41:13
【问题描述】:
我不是异步 gal,也不是专家级的 node.js 程序员。
我不知道如何返回我发布的新添加记录。
person.POST(personObject).then(
(result) => {
console.log('Result', result); //undefined
res.send(result)
},
(error) => {
log.error(error, error.message);
res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({ error: 'Internal Server Error' });
})
发布:
module.exports = async (aPerson) => {
Person.create(aPerson)
.catch((err) => {
throw err
})
.then((newPerson) => {
console.log('newPerson: ',newPerson); //this has a value
return newPerson;
})
//works but does this kill the advantage of async???
// const result = await Person.create(aPerson);
// return result;
};
newPerson 是通过 sequalize 新创建的记录。
吉娜
【问题讨论】:
-
您能澄清一下您的问题吗?
-
在
Person.create前面放置一个return。另外,我会说注释掉的部分是首选(更具可读性)。 -
异步一直是异步的。您不能返回异步值而不等待它解决。任何依赖于异步值的东西都会变成异步的。此外,您在哪里遇到问题也不是很清楚。是不是不想用
Promise?此外,您现在拥有的“POST”不会返回任何内容,因为它不会返回Person.create(aPerson)假设返回的 Promise。 -
注释掉的部分在功能上也等同于添加
return语句的部分。 -
我想在“res.send(result)”中使用返回值,我有then中的值但我没有res.send中使用的值。
标签: node.js sequelize.js