在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的本地模块,如fshttp ,因此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. +所需的常量