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 ?
J'ai résolu ce problème. J'utilise le mauvais package de nœud MySQL. Nécessite MySQL2 pour le formatage json.