gpt4 book ai didi

javascript - Node.js 全局变量!坏的、丑的和表现

转载 作者:太空宇宙 更新时间:2023-11-04 03:28:39 25 4
gpt4 key购买 nike

我在 Node 上还是个新手,正在尝试学习最佳实践,编写了一个聊天机器人,并且有很多函数和变量被大量重用,因此使用全局变量来避免一遍又一遍地重写相同的东西是有意义的(至少对我来说)。

为了避免全局变量的一些问题,我创建了一个名为 ...globals.js 的文件,其中包含所有全局变量,如果它们都位于同一个位置,则不太容易出错。

//globals.js
const Settings = require('./settings.js) // DB Model

...

// A few variables
global.foo = bar;
...
// I expect to have about 10-20 functions
global.baz = function(foo,bar) {
...
}

// Prepare and Load Settings
Settings.find(
function(err, result) {
if (err) {
console.log('Unable to load settings: ' + err);
process.exit(1);
} else {
for (let key in result[0].toObject()) {
// All settings will be available globbaly
global[key] = result[0][key];
}
}
}
);

这些设置必须可用于整个项目,因为不同的文件将使用其中的大部分设置,我预计会有超过 50 个可配置设置,即至少 50 个全局设置。这是一个坏主意吗?我应该只加载使用它们的每个文件的设置,而不是将它们加载为全局变量吗?

拥有这么多或更多的全局变量是否会影响性能,是否有更好的方法来实现我正在尝试的目标?

感谢您花时间阅读本文,如有任何反馈,我们将不胜感激。

最佳答案

您可以将所有常量保留在单个文件中,从而获得与全局变量相同的结果,此外您还可以确保这些常量不会泄漏到其他地方。

常量可以只是一个标准文件,比如说constants.js:

module.exports = {
VALUE1: 1,
VALUE2: 2 //etc
}

在其他需要的地方,您只需要这个文件:

const constants = require('./constants.js)
let neededHere = constants.VALUE1

关于javascript - Node.js 全局变量!坏的、丑的和表现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41197921/

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