javascript - 运行多核机器的 Express JS 应用程序中的全局对象最佳实践

标签 javascript node.js express pm2

我对在我的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/

相关文章:

json - 在单独的(ish)JSON Web 服务上使用 Meteor 身份验证来发布 postgresql 数据

javascript - document.getElementById ("").value 返回对象而不是值

javascript - 如何从 ThreeJS 的场景中导出图像

javascript - 在 Node.js 中连接 MongoDB 无法在 for 循环中工作

javascript - 如何在 JavaScript 中从字典中调用函数

node.js - 使用 ava 和 proxyquire 用 sinon 加载模块后无法 stub 方法

javascript - 如何自动停止在后台运行的npm脚本

javascript - 删除mongodb数据库中的数组字段

javascript - 在异步函数内部,回调函数的返回值返回 Promise(undefined)

node.js - 为什么 Node.js Express session 在 Chrome 中可以正常工作,但在 IE 10 中却不能