После создания сеанса (passport, node js, express-session) как получить доступ к переменным сеанса из другого файла внутри того же проекта

#javascript #node.js #rest #express #session-variables

#javascript #node.js #rest #экспресс #сеансовые переменные

Вопрос:

После подтверждения сеанса в login.js файл, к сеансу можно получить доступ из маршрутов внутри login.js досье. login.js

 router.use(bodyParser.json()); 

router.use(session({
    secret: 'Our secret',
    resave: true,
    saveUninitialized: true
}));

router.use(passport.initialize());

router.use(passport.session());

router.get('/sess', (req,res) =>{
  const sess = req.user.username
  res.json(req.session);
  res.redirect('/student_profile');
})
 

однако, если я попытаюсь получить к нему доступ из другого файла в том же каталоге, например: student.js он показывает значение null
student_profile.js

 router.get('/', (req,res) =>{
    res.json(req.session); //not showing anything
 }
 

Что я могу сделать, чтобы получить доступ к деталям сеанса из этих файлов?

Комментарии:

1. Как student.js импортировано и используется в вашем основном приложении?

2. В server.js const student_profile = требовать(‘./routes/student_profile’); app.use(‘/student_profile’, student_profile);

3. Он используется для определения маршрутов в категории / student_profile

4. Важен порядок .use() вызовов. Вы должны поместить все вызовы, связанные с сеансом, в основной файл сервера, а затем включить маршруты ниже. Помещение содержимого сеанса только в ваш файл входа в систему в целом не имеет особого смысла, даже если это сработало таким образом: пока сеанс запускается с помощью входа в систему, он используется всеми маршрутами.

5. @ChrisG Большое спасибо! Теперь он работает нормально. Я переместил все вызовы, связанные с сеансом, в мой server.js файлы, и теперь он работает нормально 🙂