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
导入的东西更好?
这取决于你,但绝大多数情况下,我会说社区已经站在了一边:使用模块。
我对在我的 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
导入的东西更好?
这取决于你,但绝大多数情况下,我会说社区已经站在了一边:使用模块。