Node-Express MySQL API 将 JSON 数组输出为字符串
P粉575055974
P粉575055974 2024-03-30 12:49:49
0
1
431

尝试设置 Express API 服务器来获取投资组合网站的一些数据。我已经为我的“图像”列设置了带有 JSON 数据类型的 MySQL 表。 “images”应该具有画廊的多个图像链接。但是,服务器将图像数组输出为字符串而不是字符串数组。

API 服务器上的 Javascript 代码

app.get("/getWorks", (req, res) => {
  let sql = "select * from works";
  db.query(sql, (err, result) => {
    if (err) throw err;
    console.log(result);
    res.send(result);
  });
});

结果

[
  {
    "workID": 1,
    "title": "example",
    "images": "[\"https://SERVER_IP/images/example.png\", \"https://SERVER_IP/images/example.png\"]"
  }
]

解决方法

我找到了一种解决方法来获得所需的输出,添加以下内容:

result = result.map((row) => ((row.images = JSON.parse(row.images)), row));
[
  {
    "workID": 1,
    "title": "example",
    "images": ["https://SERVER_IP/images/example.png", "https://SERVER_IP/images/example.png"]
  }
]

即使我在表中将该特定列指定为 JSON 数据类型,为什么查询一开始就不输出 JSON 数组中的数据?

P粉575055974
P粉575055974

全部回复(1)
P粉170858678

我解决了这个问题。我使用了错误的 MySQL 节点包。需要 MySQL2 进行 json 格式化。

npm install mysql2
const mysql = require("mysql2");
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板