Rumah  >  Soal Jawab  >  teks badan

Node-Express MySQL API mengeluarkan tatasusunan JSON sebagai rentetan

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粉575055974P粉575055974184 hari yang lalu328

membalas semua(1)saya akan balas

  • P粉170858678

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

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

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

    balas
    0
  • Batalbalas