JS est relativement nouveau, et j’ai besoin d’un fichier JSON que j’ai besoin d’envoyer à mon serveur (Express) que je puisse ensuite analyser et utiliser pour l’utiliser dans les applications Web que je construis.
Voici ce que j'ai maintenant:
un code merdique:
app.get ('/ search', fonction (req, res) { res.header ("Content-Type", 'application/json'); res.send (JSON.stringify ({/ data .json /}));});
Dans le code ci-dessus, j'essaie simplement d'envoyer le fichier à localhost: 3000/search et à voir mon fichier JSON, mais tout ce que je reçois lorsque je vais sur ce chemin est {}. Quelqu'un peut-il expliquer?
Toute aide serait immensément appréciée. Merci beaucoup d'avance.
A bientôt, Theo
Exemple d'extrait de data.json:
[{
"name": "Il Brigante",
"rating": "5.0",
"match": "87",
"cuisine": "Italian",
"imageUrl": "/image-0.png"
}, {
"name": "Giardino Doro Ristorante",
"rating": "5.0",
"match": "87",
"cuisine": "Italian",
"imageUrl": "/image-1.png"
}]
Assurez-vous simplement que vous avez besoin du fichier correct en tant que variable, puis transmettez-la à votre res.send!
const data = require('/path/to/data.json')
app.get('/search', function (req, res) {
res.header("Content-Type",'application/json');
res.send(JSON.stringify(data));
})
De plus, ma préférence personnelle est d'utiliser res.json
car cela définit l'en-tête automatiquement.
app.get('/search', function (req, res) {
res.json(data);
})
Essayez res.json (data.json) au lieu de res.send (...
Une autre option consiste à utiliser sendFile
et à définir l'en-tête du type de contenu.
app.get('/search', (req, res) => {
res.header("Content-Type",'application/json');
res.sendFile(path.join(__dirname, 'file_name.json'));
})
Le code suppose que le fichier se trouve dans le même répertoire que le code JS. Cette réponse explique comment cela fonctionne.
Lisez d'abord le fichier, puis envoyez le JSON au client.
fs.readFile('file_name.json', 'utf8', function (err, data) {
if (err) throw err;
obj = JSON.parse(data);
res.send(JSON.stringify(obj));
});