在NodeJS中,如何在不同的文件中使用相同的对象?

时间:2018-06-15 09:25:33

标签: javascript node.js

有三个文件:

  • a.js
  • b.js
  • token.js

我需要在a.jsb.js中使用相同的令牌,我该如何实现?例如,在a.js中设置令牌并获取令牌在b.js

我正在使用单身人士,但它不起作用:(

token.js

class Token {
  private static instance: Token

  private _hash = 'default-hash'

  private constructor() {

  }

  static getInstance() {
    if (!Token.instance) {
      Token.instance = new Token()
    }
    return Token.instance
  }

  //setter and getter for _hash

}

export default Token

1 个答案:

答案 0 :(得分:0)

module.exports或exports是一个特殊对象,默认情况下包含在Node.js应用程序的每个JS文件中。 module是表示当前模块的变量,exports是将作为模块公开的对象。因此,无论您分配给module.exports还是export,都将作为模块公开。

示例:导出文字

文件:message.js

module.exports = 'Hello world';

现在,导入此消息模块并使用它,如下所示。

档案:app.js

var msg = require('./messages.js');
console.log(msg);

示例:导出对象

message.js

exports.SimpleMessage = 'Hello world';
//or
module.exports.SimpleMessage = 'Hello world';

在上面的例子中,我们附加了一个属性" SimpleMessage"到出口对象。现在,导入并使用此模块,如下所示。

app.js

var msg = require('./messages.js');
console.log(msg.SimpleMessage);

示例:导出功能

您可以将匿名函数附加到导出对象,如下所示。

log.js

module.exports = function (msg) { 
    console.log(msg);
};

现在,您可以使用以下模块。

app.js

var msg = require('./log.js');
msg('Hello World');