Узел узора я вижу, но не понимаю почему? - PullRequest
0 голосов
/ 20 апреля 2020

Работая с такими проектами, я видел, как люди делали этот шаблон в экспорте модулей в следующем формате:

var utils = require('../lib/bhalnhahaha'); 
module.exports = utils;

Я просто не уверен, почему они не будут:

var whatever = require('../lib/bhalnhahaha');

Требуются утилиты в файле вместо использования экспорта?

1 Ответ

1 голос
/ 20 апреля 2020

Я могу думать только о двух причинах для этого:

var utils = require('../lib/bhalnhahaha'); 

// ... other code here

module.exports = utils;
  1. Вы увеличиваете или расширяете объект utils и добавляете к нему свои собственные дополнительные методы, и вы хотите экспортировать расширенный utils объект.

  2. В «другом коде здесь» есть некоторые побочные эффекты, которые как-то полезны для всего, что делает этот модуль, и вы хотите, чтобы оба этих побочных эффекта (возможно, даже инициализировать что-то в объекте utils или делать что-то еще в локальной среде).

В противном случае, лучше просто позволить вызывающей стороне импортировать utils напрямую, а не создавать ненужная зависимость от вашего модуля.

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

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