我承诺在 express 上使用 mysql2 从 mysql 数据库中获取数据。运行另一个查询后,我需要将第一个查询中的数据获取到最终返回的对象中。
db.query("SELECT * FROM users_tasks_link WHERE uin = ?", [req.params.id])
.then(result => {
const foo = db.query(
"SELECT * FROM tasks WHERE id IN (?); SELECT * FROM headers; SELECT * FROM categories; SELECT * FROM links",
[
result[0].map(e => {
return e.task_id;
})
]
);
return foo;
})
.then(foo => {
let tasks = [];
foo[0][0].forEach(element => {
let task = {
id: element.id,
title: element.title,
header: foo[0][1].filter(e => element.header === e.id)[0].header,
category: foo[0][2].filter(e => element.category === e.id)[0].category,
notes: element.notes,
level: element.level,
links: foo[0][3]
.filter(e => element.id === e.task_id)
.map(el => {
return {
name: el.name,
link: el.link
};
})
};
tasks.push(task);
});
return res.send({ data: tasks, message: "Got all tasks for user" });
})
.catch(err => {
console.log(err);
});
我需要任务对象中“结果”的值,但我无法从“foo”访问结果数据。