在node.js中定义公共常量文件

12

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

这是我的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个回答

18

你将常量对象写入TRIP_STATUS对象中,因此可以通过以下方式获取它们:

console.log(Constants.TRIP_STATUS.TRIP_STAUTS_INITIATED);

或者,您可以使用以下方法:

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

您可以根据需要获取常量:

console.log(Constants.TRIP_STAUTS_INITIATED);

console.log(Constants.TRIP_STATUS.TRIP_STAUTS_INITIATED); 也不起作用 - Muhammad Umar

5

constants 是 Node.js 的一个原生模块,类似于 fshttp。因此,require("constants") 只会输出原生常量。如果你想导入本地的 constant.js 文件,应该使用 require("./constants")(绝对路径而非相对路径)。


0

提供更多细节:

您正在导入整个exports对象

var Constants = require('constants')

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

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

这是因为您导出它的方式

module.exports.TRIP_STATUS = Object.freeze

您正在将常量对象导出到TRIP_STATUS属性下

或者,您可以通过引用对象属性而不更改导入/导出来引用它

Constants.TRIP_STAUTS. + 所需常量


常量.TRIP_STATUS.TRIP_STAUTS_INITIATED 我想做这个,我应该怎么做? - Muhammad Umar

0

现代语法:

strings.js

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

other.js

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

console.log(errorMsg1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接