res.redirect('back') with parameters


Question

I have a register form on every page of my website. During registration some error may occur. After catching the error, I have to return the user to the previous page, showing some error message. The problem is that I do not know from which page the user performed the registration, so I use res.redirect('back');. However, I cannot just redirect user back, I have to display the error message also, so I have to pass some argument. But res.redirect('back', (reg_error:'username')}) cannot be used directly because res.redirect() does not support parameters. How can I render the previous page with some parameter?

1
42
6/25/2014 11:33:56 AM

Using the referer header to find what page your user came from might be helpful:

app.get('/mobileon', function(req, res){
  backURL=req.header('Referer') || '/';
  // do your thang
  res.redirect(backURL);
});

You might also want to store backURL in req.session, if you need it to persist across multiple routes. Remember to test for the existence of that variable, something like: res.redirect(req.session.backURL || '/')


edit: Since my answer has been getting some upvotes I typed up my current way to do this. It got a little long so you can view it at https://gist.github.com/therealplato/7997908 .

The most important difference is using an explicit 'bounce' parameter in the query string that overrides the Referer url.

40
12/17/2013 12:41:10 AM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon