MySQL和EXPRESS时的异步问题"/>
获取MySQL和EXPRESS时的异步问题
我正在尝试简单地在对象中添加新属性。从我的数据库中获取了objs数组,然后尝试添加一个也从我的数据库中获取的属性。虽然当我尝试操纵它时,我收到的是“未定义”。
- 这确实是一个紧急问题吗?
- 我犯了任何愚蠢的错误吗?
这些是目前围绕我的问题。
代码:
exports.getIndex = (req, res, next) => {
Report.fetchAll().then(([rows, fieldData]) => {
// console.log(rows);
const modifiedRows = rows.map(el => {
Report.fetchUserNameOfReport(el.UserInfo_idPessoa).then(([rows, fieldData]) => {
console.log(rows);
return {
...el,
userOfReport: 'Joao' //change later to smthing like rows.name
};
}).catch(err => console.log(err));
// return{
// ...el,
// userOfReport: 'Joao'
// };
});
res.render('user/index', { reports: rows, pageTitle: 'Social Reporter', path: '/' });
}).catch(err => console.log(err));
};
Obs,如果注释掉并注释Report.fetchUserNameOfReport函数->],则可以使用>
// return{ // ...el, // userOfReport: 'Joao' // };
预期结果:
{ idComplaint: 83059, title: '4444', description: '4444', image: '4444', location: '4444', UserInfo_idPessoa: 80068, userOfReport: 'Joao' }
实际结果:
undefined
谢谢您!
我正在尝试简单地在对象中添加新属性。从我的数据库中获取了objs数组,然后尝试添加一个也从我的数据库中获取的属性。虽然当我尝试...
回答如下:您从不会在.map
中返回任何内容,因此modifiedRows
的所有值均为undefined
。您可以将它们全部映射到Promise以获取所有值,然后在等待所有Promise解析后访问已修改的行:
更多推荐
获取MySQL和EXPRESS时的异步问题
发布评论