Node-Express MySQL API mengeluarkan tatasusunan JSON sebagai rentetan
P粉575055974
P粉575055974 2024-03-30 12:49:49
0
1
436

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?

P粉575055974
P粉575055974

membalas semua(1)
P粉170858678

Saya menyelesaikan masalah ini. Saya menggunakan pakej nod MySQL yang salah. Memerlukan MySQL2 untuk pemformatan json.

npm install mysql2
const mysql = require("mysql2");
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan