Node-Express MySQL API 將 JSON 陣列輸出為字串
P粉575055974
P粉575055974 2024-03-30 12:49:49
0
1
405

嘗試設定 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");
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板