Есть ли способ использовать функции из «двойного требования» - PullRequest
0 голосов
/ 25 февраля 2020

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

По сути, у меня есть индекс . js файл, вызывающий другой файл через require, мы скажем, что это js_functions. js. js_functions. js вызывает несколько файлов с помощью require, и все эти файлы корректно экспортируют функции.

Для примера скажем, что структура имеет индекс . js> js_functions. js> add. js.

Есть ли способ вызвать функцию из add. js в index. js без прямого запроса add. js в index. js (через js_functions. js)?

1 Ответ

0 голосов
/ 25 февраля 2020

Если index.js хочет вызвать функцию из add.js, то у вас есть два варианта:

  1. index.js может require('add.js') напрямую и, таким образом, получить экспортированную функцию из add.js для вызова.

  2. js_functions.js может экспортировать функцию из add.js, поэтому, когда вы require('js_functions.js'), функция, которую вы хотите вызвать из add.js, доступна в js_functions.js export.

Как правило, я избегаю двойного экспорта, как в варианте №2, и если мне нужна функция из add.js, я просто делаю зависимости прямыми и ясными require('add.js') так что я могу получить доступ к этой функции.

Если вы новичок в разработке node.js модуля, то вам нужно немного привыкнуть к тому, что вы запускаете каждое новое определение модуля, а просто добавляете все require заявления о том, что вам нужно получить доступ к нужным вам модулям / функциям. Но именно так вы разрабатываете модули в node.js, и у него есть все виды преимуществ (тестируемость, изменяемость, пригодность для разделения, четкие зависимости без неявных зависимостей и т. Д. c ...). Итак, просто используйте немного дополнительного кода в начале каждого модуля для импорта необходимых вам вещей.

Есть ли способ вызвать функцию из add. js в индексе. js без прямого добавления. js в индексе. js (через js_functions. js)?

Только если js_functions.js экспортирует функцию из add.js, которую вы хочу позвонить. Просто потому, что js_functions.js уже выполнил require('add.js'), что не предоставляет доступ к экспорту в add.js к любому другому коду, кроме js_functions.js.


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

...