如何共享NodeJS模块中的常量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

目前我正在做这个:

foo.js

const FOO = 5;

module.exports = {
    FOO: FOO
};

并在bar.js:

var foo = require('foo');
foo.FOO; // 5

有更好的方法吗?声明导出对象中的常量令人感到尴尬。

提问于
用户回答回答于

可以将其显式地导出到全局作用域。global.FOO = 5...。然后只需要求文件,甚至不保存返回值。

用户回答回答于

constants.js

Object.defineProperty(exports, "PI", {
    value:        3.14,
    enumerable:   true,
    writable:     false,
    configurable: false
});

更好的constants.js

function define(name, value) {
    Object.defineProperty(exports, name, {
        value:      value,
        enumerable: true
    });
}

define("PI", 3.14);

script.js

var constants = require("./constants");

console.log(constants.PI); // 3.14
constants.PI = 5;
console.log(constants.PI); // still 3.14

扫码关注云+社区