[英]How to add a second level query to axios query?
I am querying an objects
table in axios like this:我正在像这样查询 axios 中的
objects
表:
app.get(`/details`, (req, res) => {
const { id } = req.query;
connection.query(
`SELECT
objects.*
FROM objects
WHERE id = ${id}
LIMIT 1`,
(err, results) => {
if (err) {
return res.send(err);
} else {
let result = results[0];
result.relationships = [];
result.tasks = [];
return res.json(result);
}
}
);
});
How can I add the following two queries to my result results.relationship
:如何将以下两个查询添加到我的结果
results.relationship
:
`SELECT objects.* FROM objects WHERE objects.relationship = ${result.id}
and to my result results.tasks
:和我的结果
results.tasks
:
`SELECT tasks.* FROM tasks WHERE tasks.relationship = ${result.id}
Here is a working solution, resulting from the comments.这是一个有效的解决方案,来自评论。 Thank you to @Chris G.
谢谢@Chris G。
app.get(`/details`, (req, res) => {
const { id } = req.query;
const query = util.promisify(connection.query).bind(connection);
(async () => {
try {
let [
object,
] = await query(`SELECT objects.* FROM objects WHERE id = ? LIMIT 1`, [
id,
]);
const relatedObjects = await query(
`SELECT objects.* FROM objects WHERE relationship = ?`,
[id]
);
object.relationships = relatedObjects;
const tasks = await query(
`SELECT tasks.* FROM tasks WHERE relationship = ?`,
[id]
);
object.tasks = tasks;
return res.json(object);
} catch (error) {
console.log(error);
} finally {
connection.end();
}
})();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.