javascript - 在 NodeJS 中,如何在不同的文件中使用相同的对象?
问题描述
有三个文件:
- 一个.js
- b.js
- 令牌.js
我需要在a.js
and中使用相同的标记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
解决方案
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');
推荐阅读
- swift - 我如何在中断状态下快速获取我的代码行而不是后台进程
- android - Android:如何为暗模式切换主题?
- python - 我如何保存复选框中的输入,其中当我只选中复选框上的一个选项时,它给了我一个错误
- javascript - DataLayer.push 不适用于外部 JavaScript
- java - 在 Java 中从 System.in 获取 int 数组的简单方法
- python - 如何从具有加载更多按钮的网站抓取?
- excel - 工作表上出现不规则的 #1004 错误。[图片。/范围。]粘贴
- python - Groupby 并用 Pandas 中的前后值的平均值填充 NaN
- video - 无法覆盖 ffmpeg 元数据
- javascript - CSV 文件到具有不同标头和值分隔符的对象数组