首頁  >  問答  >  主體

Node-Express MySQL API 將 JSON 陣列輸出為字串

嘗試設定 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粉575055974P粉575055974184 天前326

全部回覆(1)我來回復

  • P粉170858678

    P粉1708586782024-03-31 11:55:58

    我解決了這個問題。我使用了錯誤的 MySQL 節點包。需要 MySQL2 進行 json 格式化。

    npm install mysql2
    const mysql = require("mysql2");
    

    回覆
    0
  • 取消回覆