Cuba sediakan pelayan API Express untuk mendapatkan beberapa data daripada tapak web portfolio. Saya telah menyediakan jadual MySQL dengan jenis data JSON untuk lajur "Imej" saya. "imej" harus mempunyai berbilang pautan imej untuk galeri. Walau bagaimanapun, pelayan mengeluarkan tatasusunan imej sebagai rentetan dan bukannya tatasusunan rentetan.
Kod JavaScript pada pelayan API
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); }); });
Hasil
[ { "workID": 1, "title": "example", "images": "[\"https://SERVER_IP/images/example.png\", \"https://SERVER_IP/images/example.png\"]" } ]
Penyelesaian
Saya menemui penyelesaian untuk mendapatkan output yang diingini, tambahkan yang berikut:
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"] } ]
Mengapa pertanyaan tidak mengeluarkan data dalam tatasusunan JSON di tempat pertama walaupun saya menetapkan lajur tertentu sebagai jenis data JSON dalam jadual?
Saya menyelesaikan masalah ini. Saya menggunakan pakej nod MySQL yang salah. Memerlukan MySQL2 untuk pemformatan json.