Gostaria de incluir alguns arquivos JSON no meu código JavaScript que estão no mesmo diretório do meu arquivo de origem JavaScript.
Se eu quisesse incluir outro arquivo JavaScript, poderia simplesmente usar require
. Agora estou usando readFileSync
e __dirname
para obter o JSON, que acho uma maneira feia de fazê-lo.
Existe algo semelhante para o require que me permite carregar um arquivo JSON?
Respostas:
No nó v0.5.x, sim, você pode exigir seu JSON da mesma forma que exigiria um arquivo js.
var someObject = require('./somefile.json')
No ES6:
import someObject from ('./somefile.json')
fonte
.json
parece importarOs arquivos JSON não requerem uma declaração de exportação explícita. Você não precisa exportar para usá-lo como arquivos Javascript.
Portanto, você pode usar apenas
require
para documento JSON válido.data.json
main.js
fonte
Não. Use
readFile
oureadFileSync
(Este último apenas no momento da inicialização).Ou use uma biblioteca existente como
Como alternativa, escreva sua configuração em um arquivo js em vez de um arquivo json como
fonte
__dirname
para fazer caminhos relativos.Dois dos mais comuns
Primeira maneira:
let jsonData = require('./JsonFile')
// se omitir .json também funcionaOU
Segunda maneira:
1) síncrona
2) assincronamente
Nota: 1) se o JsonFile.json for alterado, não obteremos os novos dados, mesmo se executarmos o require ('./ JsonFile.json')
2) O fs.readFile ou fs.readFileSync sempre lerá o arquivo e obterá alterações
fonte
Você ainda pode usar exigir do seu JSON sem especificar a extensão .json . Ele permitirá que você altere a extensão do arquivo para .js sem nenhuma alteração nas suas importações.
assumindo que temos ./myJsonFile.json no mesmo diretório.
Se no futuro você mudar ./myJsonFile.json para ./myJsonFile.js, nada deverá ser alterado na importação.
fonte