Лучшие практики для глобальных объектов в приложении Express js, работающем на многоядерных машинах - PullRequest
0 голосов
/ 29 апреля 2018

Меня смущает использование глобальных переменных в моем приложении 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() 

Каковы плюсы и минусы вышеупомянутых двух методов, если я запускаю свое приложение на многоядерных машинах

1 Ответ

0 голосов
/ 29 апреля 2018

Тот факт, что ваше приложение запускается на многоядерных компьютерах с pm2, совершенно не имеет отношения к вопросу. Каждый процесс Node.js будет отличаться. pm2 просто запускает несколько процессов. Глобальные переменные (и загруженные модули) не будут совместно использоваться этими процессами.

Так что вопрос на самом деле: лучше ли иметь глобальную переменную или экспортировать что-то из модуля, который другие модули могут импортировать через require?

Вам решать, но в подавляющем большинстве случаев я бы сказал, что сообщество перешло на сторону: Используйте модуль.

...