Tableau JSON de sortie de l'API MySQL Node-Express sous forme de chaîne
P粉575055974
P粉575055974 2024-03-30 12:49:49
0
1
406

Essayez de configurer un serveur API Express pour obtenir des données du site Web du portefeuille. J'ai mis en place une table MySQL avec un type de données JSON pour ma colonne "Image". Les "images" doivent avoir plusieurs liens d'images pour la galerie. Cependant, le serveur génère le tableau d'images sous forme de chaîne au lieu d'un tableau de chaînes.

Code Javascript sur le serveur 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);
  });
});

Résultat

[
  {
    "workID": 1,
    "title": "example",
    "images": "[\"https://SERVER_IP/images/example.png\", \"https://SERVER_IP/images/example.png\"]"
  }
]

Solution

J'ai trouvé une solution de contournement pour obtenir le résultat souhaité, ajoutez ce qui suit :

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"]
  }
]

Pourquoi la requête ne génère-t-elle pas les données du tableau JSON en premier lieu même si j'ai spécifié cette colonne particulière comme type de données JSON dans le tableau ?

P粉575055974
P粉575055974

répondre à tous(1)
P粉170858678

J'ai résolu ce problème. J'utilise le mauvais package de nœud MySQL. Nécessite MySQL2 pour le formatage json.

npm install mysql2
const mysql = require("mysql2");
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal