nodeJs中如何实现全局通用的js工具类 其他组件使用的时候无需导包

具体实现

为了编写一个在 Node.js 中全局通用的工具类,有两种方法:

  1. 使用全局对象 global

首先,可以将工具类定义为一个模块并导出。然后,在应用程序的入口文件中使用全局对象 global 将其设置为全局变量。这样,就可以在应用程序的任何地方使用该工具类。

例如,创建一个名为 myUtils.js 的工具类文件,其中包含以下函数:

1
2
3
4
5
6
7
8
9
10
11
12
function sayHello() {
console.log('Hello, world!');
}

function add(a, b) {
return a + b;
}

module.exports = {
sayHello,
add
}

接下来,在应用程序的入口文件中,如 app.js 文件中添加以下代码:

1
2
const myUtils = require('./myUtils');
global.myUtils = myUtils;

现在可以在应用程序的任何地方使用 myUtils 工具类,如下所示:

1
2
3
// 不需要导入或引用
myUtils.sayHello(); // 输出 "Hello, world!"
console.log(myUtils.add(2, 3)); // 输出 5
  1. 修改原型对象

另一种方法是在全局原型对象上添加方法或属性。这样,所有 JavaScript 对象都可以访问它们。但是,这种方法可能会影响到其他模块或库的行为,因此需要小心使用。

例如,创建一个名为 myUtils.js 的工具类文件,其中包含以下函数:

1
2
3
4
5
6
7
Object.prototype.sayHello = function() {
console.log('Hello, world!');
};

Object.prototype.add = function(a, b) {
return a + b;
};

现在可以在应用程序的任何地方使用 sayHelloadd 方法,如下所示:

1
2
3
4
// 不需要导入或引用
const obj = {};
obj.sayHello(); // 输出 "Hello, world!"
console.log(obj.add(2, 3)); // 输出 5

请注意,这种方法会将新方法添加到所有对象的原型中,包括 JavaScript内置对象。因此,可能会影响到其他代码库的行为,并且存在潜在的命名冲突和安全风险。

本文内容来自 : ChatGPT

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%