#node.js
#node.js
Вопрос:
Рассмотрим следующий простой сценарий, файл config.js:
const config = {
a: '123'
}
module.exports = config;
и это использование:
const cfg = require('./conifg');
console.log(cfg.a);
Теперь мне нужно добавить дополнительный элемент экспорта в config.js:
const config = {
a: '123'
}
function someFunction() {
console.log('blah');
}
module.exports = {
config,
someFunction
};
Эта модификация тормозит пока рабочий код, потому cfg.a
что в
const cfg = require('./conifg');
console.log(cfg.a);
указывает теперь на undefined
.
Есть ли какой-либо способ расширить module.exports
, оставаясь при этом экспортируемым элементом «по умолчанию», чтобы не тормозить работу?
Ответ №1:
вы можете экспортировать все свойства конфигурации отдельно
module.exports = {
...config,
someFunction
};
или, если вы не хотите использовать распространение, вы можете получить доступ с помощью
const cfg = require('./conifg');
console.log(cfg.config.a);
Ответ №2:
Вы можете сделать это следующим образом
const config = {
a: '123',
someFunction: someFunction
}
function someFunction() {
console.log('blah');
}
module.exports = config;
Комментарии:
1. К сожалению, семантически это было бы ужасно, конфигурация — это огромный JSON с текстами в основном, когда функция out of sudden занимает одно из полей… но, эй, спасибо за помощь 🙂