есть ли требование для json в узле.js
Я хотел бы включить несколько файлов JSON в мой код JavaScript, которые находятся в том же каталоге, что и мой исходный файл JavaScript.
Если бы я хотел включить другой файл JavaScript, я мог бы просто использовать require
.
Теперь я использую readFileSync
и __dirname
чтобы получить JSON, который я думаю, что это уродливый способ сделать это.
есть ли что-то подобное для require, что позволяет мне загружать файл JSON?
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 ничего не должно быть изменено в импорте.