gpt4 book ai didi

javascript - 在 ES6 Node.js 中,如何让一个类随处可用?

转载 作者:行者123 更新时间:2023-12-03 08:46:52 24 4
gpt4 key购买 nike

在我的 ES6 Node.js 应用程序中,我有一个包含一堆自定义错误类的文件,即

class FirstCustomError extends Error {
constructor(message) {
super(message);
this.name = "FirstCustomError";
}
}

class SecondCustomError extends Error {
constructor(message) {
super(message);
this.name = "SecondCustomError";
}
}

// ...

如何使这些类在应用程序中随处可用?理想情况下,我不必在需要它们的每个文件中都导入它们,也不必求助于 throw new global.errors.FirstCustomError('error message')。 .

也就是说,理想情况下,我可以做 throw new FirstCustomError('error message') .

最佳答案

您确实可以将它们放在the global object上:

global.FirstCustomError = class extends Error {
constructor(message) {
super(message);
this.name = "FirstCustomError";
}
};

global.SecondCustomError = class extends Error {
constructor(message) {
super(message);
this.name = "SecondCustomError";
}
};

您需要确保在任何其他模块使用它们之前发生这种情况,即您将其放入主脚本开头需要一次的模块中。更好(更可重用)的方法是将它们从错误模块中正常导出,然后执行
Object.assign(global, require('./errors.js'));

在您的主脚本中将所有导出安装为全局变量。

免责声明:当然, 这是一种可怕的做法! 不要那样做!只需在需要它们的任何地方显式导入它们即可。使用 ES6 模块语法轻而易举,它让一切变得更加清晰。此外,您的应用程序中不太可能有如此多的自定义错误,这些错误是真正的横切关注点,并且与特定功能无关,在这种情况下,无论如何您都不应该将它们全部放在同一个模块中。

关于javascript - 在 ES6 Node.js 中,如何让一个类随处可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com