Express js 应用中的全局对象最佳实践 运行 多核机器

Global objects best practices in express js application running multi core machines

我对在我的 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 导入的东西更好?

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