我对在我的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
导入的内容更好?
这取决于你,但绝大多数情况下,我想说社区已经站在了一边:使用该模块。
关于javascript - 运行多核机器的 Express JS 应用程序中的全局对象最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50085747/