javascript - 运行多核机器的 express js 应用程序中的全局对象最佳实践
问题描述
我对在我的 express js 应用程序中使用全局变量感到困惑,它将在多台核心机器上运行(可以使用 pm2 完成)。
这是我的方法
1)全局变量
global.db = new Sequelize('ICG_dev','root','root')
访问其他文件global.db
2)module.exports
module.exports.db = new Sequelize('ICG_dev','root','root');
访问其他文件
const db = require ('db.js');
db.get()
如果我在多核机器上运行我的应用程序,上述两种方法的优缺点是什么
解决方案
您使用 pm2 在多核机器上运行应用程序这一事实与问题完全无关。每个 Node.js 进程都是不同的。pm2 只是运行多个进程。全局变量(和加载的模块)不会在这些进程之间共享。
所以问题真的是:拥有一个全局变量,还是从一个模块中导出一些其他模块可以通过导入的东西更好require
?
这取决于您,但绝大多数情况下,我会说社区已经支持:使用该模块。
推荐阅读
- typescript - TypeScript - 如何使用动态键键入接口对象
- angular - 如何在 ngx-treeview angular js 中为每个元素添加 id
- angular - MatMenu 悬停在打开的 MatMenu 下方显示 Button
- python - 如何在 Flask 中使用输入框设置变量
- svn - Tortoise SVN - 无法搁置新目录:“无法搁置一个或多个路径。”
- python - Sklearn 线性回归似乎不适合数据
- python - 在python中计算信号功率的有效方法
- javascript - 将图像 ID 映射到 Api 对象 ID
- html - 类导航栏品牌大小不变
- angular - 如何通过 Angular 11 中的管道传递 Kendo UI 网格中的数据字段?