如何在 NodeJS Express 中与 res.redirect 一起发送附加数据?

问题描述

因为我们可以在 res.render 中发送额外的数据或“消息”,就像下面的例子一样,我们可以在 res.redirect 中做同样的事情吗? res.render("dashboard",{message:"Welcome to the dashboard page"});

解决方法

您可以使用会话通过重定向传递数据

闪存包 - https://www.npmjs.com/package/connect-flash

app.get('/flash',function(req,res){
  // Set a flash message by passing the key,followed by the value,to req.flash().
  req.flash('info','Flash is back!')
  res.redirect('/');
});
 
app.get('/',res){
  // Get an array of flash messages by passing the key to req.flash()
  res.render('index',{ messages: req.flash('info') });
});
,

有几种方法可以在重定向中传递数据,但最正确的方法是使用 query string 传递数据。如前所述,您始终需要确保您的网址正确encoded

app.get('/redirect',res) {
  var string = encodeURIComponent('something that would break');
  res.redirect('/your/redirection/url/?data=' + string);
});