运行多核机器的快速js应用程序中的全局对象最佳实践

时间:2018-04-29 10:50:21

标签: javascript node.js express pm2

我很困惑在我的快速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() 

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

1 个答案:

答案 0 :(得分:2)

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

所以问题是:拥有全局变量或从其他模块可以通过require导入的模块中导出某些东西更好吗?

这取决于你,但绝大多数情况下,我说社区已经站在了一边:使用模块。