Node-Express MySQL API 将 JSON 数组输出为字符串
P粉575055974
P粉575055974 2024-03-30 12:49:49
[MySQL讨论组]

尝试设置 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");
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号