Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js中的全局模块_Node.js_Global - Fatal编程技术网

node.js中的全局模块

node.js中的全局模块,node.js,global,Node.js,Global,我创建了一个自定义错误类,用于在node.js中抛出错误。我想在我的整个项目中使用这个类。但是问题是我需要使用的地方,首先我必须在那个文件中要求,然后使用这个类,这是非常乏味的。任何人都不知道如何使其全球化,以便所有模块都可以使用它,而无需在每个文件中使用它 这是一个自定义错误类文件“cti_error.js” 我的项目结构:- my_project | |____utility | | | |____cti_error.js | |____routes | |

我创建了一个自定义错误类,用于在node.js中抛出错误。我想在我的整个项目中使用这个类。但是问题是我需要使用的地方,首先我必须在那个文件中要求,然后使用这个类,这是非常乏味的。任何人都不知道如何使其全球化,以便所有模块都可以使用它,而无需在每个文件中使用它

这是一个自定义错误类文件“cti_error.js”

我的项目结构:-

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()