编辑:建议的解决方案in this answer是实现这一目标的正确方法:
在节点中的get
请求中,我可以这样做:
app.get('/', function(req, res) {
res.render('index.ejs', {
message: 'test'
});
});
发送一个对象以便与请求一起设置消息。如何通过重定向执行相同的操作:
即。像这样的东西:
function testSend(req, res) {
mess = {message: 'test two'};
res.redirect('/', mess);
//Won't pass to the "get"
}
答案 0 :(得分:1)
另一种解决方案是使用express sessions:
初始化应用时:
var session = require('express-session');
app.use(session({secret: 'mySecret', resave: false, saveUninitialized: false}));
//configure the options however you need them, obviously
您的重定向功能:
function testSend(req, res) {
req.session.message = 'please login first'; //or whatever
res.redirect('/');
});
在您的路由器中:
app.get('/', function(req, res) {
var message = req.session.message;
res.render('index.ejs', {message: message});
});
这样可以将邮件安全地保存在服务器端,以防它包含敏感数据。
答案 1 :(得分:0)
您可以使用@Jeremy之类的会话,或者传递URL上的params等数据
res.redirect('/my-url/?param1=value1¶m2=value2')
控制器上的
req.query.param1
req.query.param2