{ res.render( 'index', { -6ren">
gpt4 book ai didi

node.js - 如何在 res.redirect 期间传递数据?

转载 作者:太空宇宙 更新时间:2023-11-03 22:33:46 25 4
gpt4 key购买 nike

我的 View 依赖于一些数据来呈现,如下所示:

router.get("/", (req, res) => {
res.render(
'index', {
data: layout_data,
user: req.user
}
);
});

router.post('/login', passport.authenticate('local'), function(req, res) {
res.redirect('/');
});

它有效。但是当我添加 csurf 中间件时,例如

router.post('/login', parseForm, csrfProtection, passport.authenticate('local'), function(req, res) {
res.redirect('/');
});

布局引擎告诉我data未定义。我怀疑csurf中间件删除了数据。

我尝试像这样修复它:

router.get("/", (req, res) => {
req.mydata = {};
req.mydata.layout_data = layout_data;
res.render(
'index', {
data: req.mydata.layout_data,
user: req.user
}
);
});

router.post('/login', parseForm, csrfProtection, passport.authenticate('local'), function(req, res) {
if (!req.mydata) {
req.mydata = {};
}
req.mydata.layout_data = layout_data;
res.redirect('/');
});

还是不行。数据仍未定义。

解决此问题的最佳做法是什么?

最佳答案

我的猜测是:您的 layout_data 未定义。

关于node.js - 如何在 res.redirect 期间传递数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33031493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com