在node.js中定义公共Constants文件

时间:2016-06-24 13:03:18

标签: node.js

我正在尝试创建一个包含所有常量的文件。

这是我的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);

然而它没有阅读枚举。

我的代码出了什么问题?

4 个答案:

答案 0 :(得分:5)

将常量对象写入TRIP_STATUS对象。所以,你可以通过下一个方式获得它们:

console.log(Constants.TRIP_STATUS.TRIP_STAUTS_INITIATED);

或者,您可以采用下一种方式:

module.exports = {
    TRIP_STAUTS_INITIATED         : 1000,
    ...
}

并根据需要获取常量:

console.log(Constants.TRIP_STAUTS_INITIATED);

答案 1 :(得分:2)

constants是Node.js的本机模块,如fshttp,因此require("constants")只会输出本机常量。如果你想导入你的本地constant.js,你应该require("./constants")(ABSOLUTE PATH NOT RELATIVE ONE)。

答案 2 :(得分:0)

提供更多细节:

您正在导入整个导出对象

var Constants = require('constants')

您需要做的是仅导入您尝试引用的部分作为常量对象

var Constants = require('constants'). TRIP_STATUS;

这是因为你导出它的方式

module.exports.TRIP_STATUS = Object.freeze

您正在导出属性TRIP_STATUS

下的常量对象

或者您可以通过引用对象属性

来引用它而不更改导入/导出

Constants.TRIP_STAUTS. +期望的常数

答案 3 :(得分:0)

现代语法是:

strings.js

export default {
    errorMsg1 : '.................',
    errorMsg2 : '.................'
}

other.js

import strings from '../../util/strings'

console.log(errorMsg1)