简体   繁体   English

如何向 axios 查询添加二级查询?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM