Повторно требующий модуль, который требует родительский

Я изучаю NodeJS (используя Express) и наткнулся на кое-что, что показалось мне странным.

В app.js мне нужен модуль (в данном случае паспорт), а затем требуется второй модуль (паспорт-strats.js), который я разработал. Внутри паспортов-стратов мне нужно повторно требовать паспорт, хотя он уже требуется в app.js.

Это не единственный пример, у меня есть несколько модулей, необходимых в трех файлах, которые тесно связаны. Это стандарт или мне не хватает какой-то важной части структурирования приложений NodeJS?

1
0
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку вам потребуется модуль passport, если он вам потребуется в passport-strats.js и экспортировать его из этого модуля. В app.js вы можете использовать оба модуля, просто импортировав passport-strats.js. то есть:

//passport-strats.js

var {passport} = require("./path");
//other code

module.exports = { passport, someVariableFromCurrentModel };


//In app.js

var {passport, someVariableFromCurrentModel} = require("./passport-strats");

В этом есть смысл, но что, если у меня есть один модуль, который нужно использовать в полдюжине или около того файлов? Требуется ли их каждый раз в стандартной практике? Я в основном просто хочу убедиться, что я что-то не упускаю, скорее всего, я слишком обдумываю это.

Mark Hill 13.09.2018 21:15

"но что, если у меня есть один модуль, который нужно использовать в полдюжине или около того файлов?" Этот подход тоже работает.

michaelitoh 13.09.2018 21:21

Вы бы порекомендовали это сделать для повышения производительности, или это скорее ситуация «вот как бы вы это сделали, если бы по какой-то причине захотели»?

Mark Hill 13.09.2018 21:29

Требовать один и тот же модуль в 20 разных файлах представляет собой такое же усилие для узла, как если бы это было только один раз, потому что в первый раз, когда вам это нужно, узел кэширует этот файл, а во второй попытке он возвращает вам кешированный файл. Честно говоря, я никогда не слышал о лучших практиках для требования модуля в нескольких файлах.

michaelitoh 13.09.2018 21:37

Это работает, тот факт, что в целом об этом мало что говорят, заставляет меня чувствовать себя лучше. По какой-то причине я подумал, что делаю что-то ужасно неправильно. Спасибо!

Mark Hill 13.09.2018 21:38

Другие вопросы по теме