嘗試設定 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 數組中的資料?
我解決了這個問題。我使用了錯誤的 MySQL 節點包。需要 MySQL2 進行 json 格式化。