Je voudrais inclure quelques fichiers JSON dans mon code JavaScript qui se trouvent dans le même répertoire que mon fichier source JavaScript.
Si je voulais inclure un autre fichier JavaScript, je pourrais simplement l'utiliser require
. Maintenant, j'utilise readFileSync
et __dirname
pour obtenir le JSON, ce qui, à mon avis, est une mauvaise façon de le faire.
Existe-t-il quelque chose de similaire pour require qui me permet de charger un fichier JSON?
Réponses:
À partir du nœud v0.5.x oui, vous pouvez exiger votre JSON comme vous auriez besoin d'un fichier js.
var someObject = require('./somefile.json')
Dans ES6:
import someObject from ('./somefile.json')
la source
.json
semble avoir de l'importanceLes fichiers JSON ne nécessitent pas de déclaration d'exportation explicite. Vous n'avez pas besoin d'exporter pour l'utiliser comme fichiers Javascript.
Ainsi, vous pouvez utiliser uniquement
require
pour un document JSON valide.data.json
main.js
la source
Non. Utilisez soit
readFile
oureadFileSync
(ce dernier uniquement au moment du démarrage).Ou utilisez une bibliothèque existante comme
Vous pouvez également écrire votre configuration dans un fichier js plutôt qu'un fichier json comme
la source
__dirname
pour faire des chemins relatifs.Deux des plus courants
Première voie:
let jsonData = require('./JsonFile')
// si nous omettons .json fonctionne aussiOU
Deuxième voie:
1) de manière synchrone
2) de manière asynchrone
Remarque: 1) si nous JsonFile.json est modifié, nous n'obtenons pas les nouvelles données, même si nous réexécutons require ('./ JsonFile.json')
2) Le fichier fs.readFile ou fs.readFileSync relira toujours le fichier et obtiendra les modifications
la source
Vous pouvez même utiliser require de votre JSON sans spécifier l'extension .json . Il vous permettra de modifier l'extension du fichier en .js sans aucune modification de vos importations.
en supposant que nous avons ./myJsonFile.json dans le même répertoire.
Si à l'avenir vous changerez ./myJsonFile.json en ./myJsonFile.js, rien ne devrait être changé lors de l'importation.
la source
Vous pouvez importer des fichiers json à l'aide de l'indicateur de modules json expérimentaux node.js v14. Plus de détails ici
file.js
Et tu l'appelles avec
node --experimental-json-modules file.js
la source