程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用连接查询 SQLite 的 Node JS API 端点大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用连接查询 sqlite 的 Node JS API 端点?

开发过程中遇到使用连接查询 sqlite 的 Node JS API 端点的问题如何解决?下面主要结合日常开发的经验,给出你关于使用连接查询 sqlite 的 Node JS API 端点的解决方法建议,希望对你解决使用连接查询 sqlite 的 Node JS API 端点有所启发或帮助;

在 SQLite 中有两个表:

create table sites (

    ID INTEGER PRIMARY KEY autoINCREMENT,@R_114_4687@T
);

create table devices (
    ID INTEGER PRIMARY KEY,siteid integer,@R_114_4687@T,active BooleAN,CONSTraiNT device_fk_sitEID FOREIGN KEY (sitEID)
        REFERENCES sites (ID) ON updatE CASCADE ON deletE CASCADE
)

我正在 NodeJs 中创建 Easy rest API 端点以获取站点的所有设备。如何以正确的方式做到这一点?我想要这样的结果:

{
    "ID": 1,"name": "Site 1","devices": [
        {
            "ID": 1,"name": "Device 1"
        },{
            "ID": 2,"name": "Device 2"
        }
    ]
}

我试过了,但我应该做一些不同的事情吗?

  app.get("/sites/:sitEID",async (req,res,next) => {
    let sql = `SELECT * FROM sites as s 
    JOIN devices as d 
    ON s.ID = d.sitEID
    WHERE s.ID = ?`;

    const result = db.get(sql,req.params.sitEID);
    res.Json(result);

  }

解决方法

您可以使用 sqlite 的 JSON1 extension 函数:

SELECT json_object(
         'id',s.id,'name',s.name,'devices',json_group_array(
            json_object('id',d.id,d.Name)
          ) 
       ) result
FROM sites as s JOIN devices as d 
ON s.id = d.sitEID
WHERE s.id = ?
GROUP BY s.id,s.name

查看简化的 demo。

大佬总结

以上是大佬教程为你收集整理的使用连接查询 SQLite 的 Node JS API 端点全部内容,希望文章能够帮你解决使用连接查询 SQLite 的 Node JS API 端点所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Node端点