首页 > 解决方案 > 在 NodeJS 中,如何在不同的文件中使用相同的对象?

问题描述

有三个文件:

我需要在a.jsand中使用相同的标记b.js,我该如何实现?例如,set token ina.js和 get token inb.js

我正在使用单例,但它不起作用:(

令牌.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

标签: javascriptnode.js

解决方案


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

示例:导出文字

文件:message.js

module.exports = 'Hello world';

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

文件:app.js

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

示例:导出对象

消息.js

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

在上面的示例中,我们将属性“SimpleMessage”附加到导出对象。现在,导入并使用这个模块,如下所示。

应用程序.js

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

示例:导出函数

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

日志.js

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

现在,您可以使用上述模块,如下所示。

应用程序.js

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

推荐阅读