Я хочу загрузить некоторые данные в файл server.js, который хранится в /data/projects.js (или .json в зависимости от ответа на вопрос).Node.js Лучший способ загрузить переменную JS синхронно
Я вижу две возможности:
с использованием readFileSync:
function readJsonFileSync() { var file = fs.readFileSync(__dirname + '/data/projects.json', 'utf8'); return JSON.parse(file); }
и projects.json будучи традиционным JSon файле
использованием требуют:
function readJsonFileReq() { return require('./data/projects.js')['projects'] ; }
с projects.js, содержащих:
exports.projects = { // My variable };
Вопрос в том, какой из них лучше:
- с точки зрения производительности?
- с точки зрения удобочитаемости узла/философии? (например, require() зарезервировано для модулей)
Я бы предположил, что решение 2 лучше, поскольку require(), вероятно, оптимизирован для чтения JS-кода, тогда как решение 1 должно прочитать файл, а затем проанализировать его, но разбор его может быть дешевле, чем его выполнение.
Я обычно обернуть мой внешний конфигурационный файл в-среды в модуле, который управляет значения по умолчанию, системные переменные, и т. д., поэтому я использую как 'require' *, так и' 'readFileSync' –