node.js中的全局模块
我创建了一个自定义错误类,用于在node.js中抛出错误。我想在我的整个项目中使用这个类。但是问题是我需要使用的地方,首先我必须在那个文件中要求,然后使用这个类,这是非常乏味的。任何人都不知道如何使其全球化,以便所有模块都可以使用它,而无需在每个文件中使用它 这是一个自定义错误类文件“cti_error.js” 我的项目结构:-node.js中的全局模块,node.js,global,Node.js,Global,我创建了一个自定义错误类,用于在node.js中抛出错误。我想在我的整个项目中使用这个类。但是问题是我需要使用的地方,首先我必须在那个文件中要求,然后使用这个类,这是非常乏味的。任何人都不知道如何使其全球化,以便所有模块都可以使用它,而无需在每个文件中使用它 这是一个自定义错误类文件“cti_error.js” 我的项目结构:- my_project | |____utility | | | |____cti_error.js | |____routes | |
my_project
|
|____utility
| |
| |____cti_error.js
|
|____routes
| |
| |_____product.js
| |_____defects.js
|
|
|_____server.js
我知道的解决方案是,在我要抛出错误的每个文件中都需要自定义错误类,如下所示:-
const cti_error = require('../../utility/cti_error.js');
throw new cti_error(403,"wrong details");
你知道如何使用cti\u eror而不需要在每个文件中都使用它吗?你可以将它分配给nodejs的
全局
变量
像这样:
global.CTIError = CTIError;
现在,您可以通过以下方式访问CTIRROR
:
new CTIError()
您的linter可能会告诉您,
CTIError
没有声明。还有其他方法可以在server.js中导入文件并在整个项目中使用它吗?是的,就是这样,要做到这一点,您的server.js
只需要有以下代码:const-cti\u error=require('../../utility/cti_error.js');global.cti_error=cti_error;
这将使整个项目都可以访问cti_error
。所以你是说我应该在server.js中要求从cti_err类全局导出它。我不明白你所说的“从cti_err类全局导出它”是什么意思但是,是的,您应该在server.js
中要求cti\u err
,并将cti\u err
分配给nodejs的global
变量。它不起作用,它会给出一个错误,因为“cti\u error未定义”
new CTIError()