Node.js требовать несколько раз или передавать пакет как аргумент?

#node.js #express

#node.js #выразить

Вопрос:

У меня есть функция в одном «родительском» файле, которая вызывает функции в 10 разных «дочерних» файлах, require() все из которых являются одними и теми же 4 пакетами. Что лучше — запрашивать эти пакеты один раз в родительском файле и передавать эти пакеты в качестве аргументов дочерним файлам или require() их в начале каждого из 10 файлов?

Мне кажется, что первое лучше, но я не знаю, есть ли какая-то низкоуровневая оптимизация, которой мне не хватает, или есть большие накладные расходы на передачу пакетов как аргументов.

Ответ №1:

Я не думаю, что это действительно имеет значение. Пакеты кэшируются (см. https://nodejs.org/api/modules.html#modules_caching ).

На мой взгляд, если вы требуете их для каждого файла, а не передаете их как параметры, зависит от того, как вы хотите использовать дочерние функции. Если в какой-то момент вы, возможно, захотите использовать дочернюю функцию вне родительской, было бы лучше требовать необходимые пакеты в каждом дочернем элементе. С другой стороны, у вас может возникнуть сценарий, в котором вы хотите вызвать дочернюю функцию с параметром, который может измениться (например, вы хотите передать дочерней функции функцию сортировки). В этом случае параметр был бы хорош, чтобы вы могли повторно использовать большую часть кода.