首页 > 解决方案 > 运行多核机器的 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() 

如果我在多核机器上运行我的应用程序,上述两种方法的优缺点是什么

标签: javascriptnode.jsexpresspm2

解决方案


您使用 pm2 在多核机器上运行应用程序这一事实与问题完全无关。每个 Node.js 进程都是不同的。pm2 只是运行多个进程。全局变量(和加载的模块)不会在这些进程之间共享。

所以问题真的是:拥有一个全局变量,还是从一个模块中导出一些其他模块可以通过导入的东西更好require

这取决于您,但绝大多数情况下,我会说社区已经支持:使用该模块。


推荐阅读