Senbonzakuraa
@Senbonzakuraa
Начинаю начинать

Как взаимодействовать компонентам между собой?

Пишу проект с использованием express и с применением компонентного подхода. Имею такую файловую структуру:

components
 user
   index.js
   userModel.js
   userRouter.js
 auth
   index.js
   authRouter.js
   authController.js

Насколько я понимаю, мои компоненты не должны быть связаны напрямую, т.е будет неправильно в файле authController.js подключить user компонент для того чтоб при авторизации делать проверку на существующего юзера.

Вот код authController:

const passport = require('passport')
const VKontakteStrategy = require('passport-vkontakte').Strategy;
const config = require('config')

passport.use(new VKontakteStrategy({
    clientID:     config.get('auth.vk.clientID'),
    clientSecret: config.get('auth.vk.clientSecret'),
    callbackURL:  `${config.get('domain')}/api/web/auth/vkontakte/callback`
  },
  function(accessToken, refreshToken, params, profile, done) {
      console.log(profile)
    // Зачем мне подключать компоненты друг к другу напрямую?
    User.findOrCreate({ vkontakteId: profile.id }, function (err, user) {
      return done(err, user);
    });
  }
));

module.exports = passport

Вопрос - как в таком случае я должен связывать эти 2 компонента?
  • Вопрос задан
  • 26 просмотров
Пригласить эксперта
Ответы на вопрос 1
GreyCrew
@GreyCrew
Full-stack developer
Не очень понятен ваш вопрос.

Вот у вас есть authController, в нем вы инициализируете стратегию авторизации через ВК, через new
VKontakteStrategy, которая принимает два аргумента - объект с данными и коллбэк функцию, которая выполнится после успешной инициализации. Компоненты более чем связаны.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы