在node.js中定义公共常量文件
我正在尝试创build一个包含所有常量的文件。
这是我的constants.js模块:
module.exports.TRIP_STATUS = Object.freeze({ TRIP_STAUTS_INITIATED : 1000, TRIP_STAUTS_PENDING_PRE_INSP : 1001, TRIP_STAUTS_ACTIVE : 1002, TRIP_STAUTS_PENDING_POST_INSP : 1003, TRIP_STAUTS_DONE : 1004, TRIP_STAUTS_UNKNOWN : 1005 });
在我的主要index.js我试图做类似的事情
var Constants = require('constants'); console.log(Constants.TRIP_STAUTS_INITIATED);
但是它不读取枚举。
我的代码有什么问题?
您将常量对象写入TRIP_STATUS对象。 所以,你可以用下面的方法得到它们:
console.log(Constants.TRIP_STATUS.TRIP_STAUTS_INITIATED);
或者,你可以用下一个方法来做:
module.exports = { TRIP_STAUTS_INITIATED : 1000, ... }
并根据需要获取常量:
console.log(Constants.TRIP_STAUTS_INITIATED);
constants
是Node.js的本地模块,如fs
, http
,因此require("constants")
将只输出本地常量。 如果你想导入你的本地的constant.js,你应该require("./constants")
(ABSOLUTE PATH NOT RELATIVE ONE)。
给一些更多的细节:
您正在导入整个导出对象
var Constants = require('constants')
你需要做的是只导入你试图引用的部分作为常量对象
var Constants = require('constants'). TRIP_STATUS;
这是因为你出口的方式
module.exports.TRIP_STATUS = Object.freeze
您正在TRIP_STATUS属性下导出您的常量对象
或者您可以引用它,而无需通过引用对象属性来更改导入/导出
Constants.TRIP_STAUTS.
+所需的常量