есть ли требование для json в узле.js


Я хотел бы включить несколько файлов JSON в мой код JavaScript, которые находятся в том же каталоге, что и мой исходный файл JavaScript.

Если бы я хотел включить другой файл JavaScript, я мог бы просто использовать require. Теперь я использую readFileSync и __dirname чтобы получить JSON, который я думаю, что это уродливый способ сделать это.

есть ли что-то подобное для require, что позволяет мне загружать файл JSON?

4 169

4 ответа:

по состоянию на узле версии v0.5.x Да, вы можете потребовать свой JSON так же, как вам потребуется файл js.

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

в ES6:

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

нет. Либо использовать readFile или readFileSync (последний только во время запуска).

или использовать существующую библиотеку, как

В качестве альтернативы запишите свою конфигурацию в файл js, а не в файл json, например

module.exports = {
  // json
}

файлы JSON не требуют явного оператора экспорта. Вам не нужно экспортировать, чтобы использовать его в качестве файлов Javascript.

Итак, вы можете использовать только require для действительного документа JSON.

данные.json

{
  "name": "Freddie Mercury"
}

главная.js

var obj = require('data.json');

console.log(obj.name); 
//Freddie Mercury

вы даже можете использовать требуются вашего JSON без указания расширения .json. Это позволит вам изменить расширение файла на .js без каких-либо изменений в вашего импорта.

у нас есть ./ myJsonFile.json в том же каталоге.

const data = require('./myJsonFile')

Если в будущем вы измените ./ myJsonFile.json до ./ myJsonFile.js ничего не должно быть изменено в импорте.