2011-08-23 18 views
146

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.hay un requerimiento para json en node.js

Si quisiera incluir otro archivo JavaScript, simplemente podría usar require. Ahora estoy usando readFileSync y __dirname para obtener el JSON, que creo que es una forma fea de hacerlo.

¿Hay algo similar que requiera que me permita cargar un archivo JSON?

+0

Consulte esta pregunta similar: http://stackoverflow.com/questions/4662851/how-do-you-import-non-node-js-files – holygeek

+0

@coen ¿Qué quiere decir con "incluir un archivo JSON"? Lea y analice? En caso afirmativo, posible duplicado de: http://stackoverflow.com/questions/5726729/how-to-parse-json-using-nodejs –

+2

yes; leer y analizar. Pero esto es específicamente leer un * archivo *, similar a leer un archivo js, ​​así que esto no es un duplicado y la respuesta de Goatslacker sigue siendo válida. – coen

Respuesta

285

A partir de v0.5 nodo .x sí puede requerir su JSON del mismo modo que requeriría un archivo js.

var someObject = require('./somefile.json')

En ES6: archivos

import someObject from ('./somefile.json')

+1

¿Es esto cierto? No funciona para mí, y https://github.com/joyent/node/issues/1357 y https://github.com/joyent/node/pull/584 sugieren que no debería funcionar. – user161642

+0

esos dos boletos tienen 1 y 2 años. JSON require se agregó en el nodo 0.5. – goatslacker

+10

Necesita usar require ('./ somefile.json') suponiendo que el archivo está en el mismo directorio (tenga en cuenta el punto y la barra). –

13

No. O utilice readFile o readFileSync (Esto último solo en el momento del inicio).

O utilizar una biblioteca existente como

Alternativamente escriba su configuración en un archivo js en lugar de un archivo JSON como

module.exports = { 
    // json 
} 
+0

cjson solo maneja caminos absolutos también, ¿estoy en lo cierto? – coen

+1

@coen sí, siempre usamos '__dirname' para hacer rutas relativas. – Raynos

+1

o 'return {foo: 'bar'}' – William

10

JSON no requieren una declaración explícita exportaciones. No necesita exportar para usarlo como archivos Javascript.

Por lo tanto, puede utilizar solo require para documentos JSON válidos.

Cuestiones relacionadas