Me gustaría incluir un par de archivos JSON en mi código JavaScript que están en el mismo directorio que mi archivo fuente JavaScript.
Si quisiera incluir otro archivo JavaScript, simplemente podría usarlo require
. Ahora estoy usando readFileSync
y __dirname
para obtener el JSON, que creo que es una forma fea de hacerlo.
¿Hay algo similar para require que me permita cargar un archivo JSON?
Respuestas:
A partir del nodo v0.5.x sí, puede requerir su JSON tal como requeriría un archivo js.
var someObject = require('./somefile.json')
En ES6:
import someObject from ('./somefile.json')
fuente
.json
parece importarLos archivos JSON no requieren una declaración de exportación explícita. No necesita exportar para usarlo como archivos Javascript.
Por lo tanto, puede usar solo
require
para un documento JSON válido.data.json
main.js
fuente
No. Utilice
readFile
oreadFileSync
(este último solo en el momento del inicio).O use una biblioteca existente como
Alternativamente, escriba su configuración en un archivo js en lugar de un archivo json como
fuente
__dirname
para hacer rutas relativas.Dos de los mas comunes
Primera forma:
let jsonData = require('./JsonFile')
// si omitimos .json también funcionaO
Segunda forma:
1) sincrónicamente
2) asincrónicamente
Nota: 1) si cambiamos JsonFile.json, no obtenemos los datos nuevos, incluso si volvemos a ejecutar require ('./ JsonFile.json')
2) fs.readFile o fs.readFileSync siempre volverá a leer el archivo y obtendrá cambios
fuente
Incluso puede usar require de su JSON sin especificar la extensión .json . Le permitirá cambiar la extensión del archivo a .js sin ningún cambio en sus importaciones.
suponiendo que tengamos ./myJsonFile.json en el mismo directorio.
Si en el futuro va a cambiar ./myJsonFile.json a ./myJsonFile.js, no se debe cambiar nada en la importación.
fuente