#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 файлы, и теперь он работает нормально 🙂