node.js在不停止现有需求的情况下添加新的导出字段

时间:2019-04-18 20:34:13

标签: 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,同时保持其“默认”导出成员的身份,从而不会使事情停顿下来?

2 个答案:

答案 0 :(得分:1)

您可以分别导出config的所有属性

module.exports = {
  ...config,
  someFunction
};

或者如果您不想使用传播,则可以通过

访问
const cfg = require('./conifg');
console.log(cfg.config.a);

答案 1 :(得分:0)

您可以这样做

const config = {
  a: '123',
  someFunction: someFunction
}

function someFunction() {
  console.log('blah');
}

module.exports = config;