Следует использовать класс или модуль в NodeJS - PullRequest
0 голосов
/ 23 июня 2018

Я новичок на NodeJS. Я изучаю наследование на NodeJS и обнаружил, что есть наследование с использованием Class (на ES6). У меня есть несколько вопросов об использовании Класса и Модуля, чтобы решить, какой из них следует использовать в моем случае:

  1. Как я знаю, "Module" кэшируется после того, как я запускаюсь один раз, это означает, что мне не нужно каждый раз инициализировать, а для "Класса" мне нужно инициализировать каждый раз, когда я его использую. Так это делает утечку памяти или не хорошо для производительности?
  2. В моем случае я хотел бы реализовать наследование для некоторых общих функций, а затем я мог бы повторно использовать их в моем ребенке. В случае использования «Class»: если одновременно отправляется несколько запросов со стороны клиента, влияет ли это на производительность сервера, например, более медленный ответ или что-то еще?
  3. Если используется «CLASS», могу ли я вызвать ONCE для глобальной функции (любые другие классы наследования не будут вызывать эту функцию).
  4. После создания экземпляра Class и обработки функциональности он будет выпущен?

Заранее спасибо.

1 Ответ

0 голосов
/ 23 июня 2018

Следует использовать класс или модуль в NodeJS

Это ложный выбор. Вы вполне можете использовать оба. Вы, конечно, хотите использовать модули (на самом деле, было бы очень трудно этого не делать). Вы можете или не можете использовать class (больше в ответах на этот вопрос ), а если нет, вы можете или не хотите использовать псевдоклассическое наследование; или вы можете предпочесть прямое использование прототипного наследования. Это выбор стиля.

1. Как я знаю, «Модуль» кэшируется после того, как я запускаю один раз ...

Да, модули кэшируются. Вы используете встроенный код модуля для его инициализации. Затем модуль экспортирует функции и / или функции-конструкторы (свободно, «классы») и т. Д., Которые могут использовать другие модули.

2. ... Если одновременно отправляется несколько запросов со стороны клиента, влияет ли это на производительность сервера, например, более медленный ответ или что-то в этом роде?

Создание объектов, в том числе создание объектов с помощью функций конструктора, очень быстро. Беспокойство по поводу функциональности и ремонтопригодности. Беспокойство по поводу производительности, если и когда есть проблема.

3. Если используется «CLASS», могу ли я вызвать ONCE для глобальной функции (любые другие классы наследования не будут вызывать эту функцию).

Вы можете создать один экземпляр класса и экспортировать его из модуля для повторного использования без повторного создания, да.

4. После создания экземпляра класса и обработки функциональности он будет выпущен?

Если ничто не хранит ссылку на объект, этот объект подходит для сборки мусора, да. Естественно, если что-то сохраняет ссылку на объект (например, если вы экспортируете его из модуля), оно не подходит для сборки мусора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...