How to redirect user's browser URL to a different page in Nodejs?

Tanaki picture Tanaki · Jul 6, 2012 · Viewed 168.1k times · Source

In the application I'm trying to write, the main page (http://localhost:8675) has the following form:

<form action='/?joinnew' method='post'>
  <button>Start</button>
</form>

Here is the code in server.js:

http.createServer(function(request, response) {
  var root = url.parse(request.url).pathname.split('/')[1];
  if (root == '') {
    var query = url.parse(request.url).search:
    if (query == '?joinnew') {
      var newRoom = getAvaliableRoomId(); // '8dn1u', 'idjh1', '8jm84', etc.
      // redirect the user's web browser to a new url
      // ??? How to do.  Need to redirect to 'http://whateverhostthiswillbe:8675/'+newRoom
...
}}}

I would love if there were a way to do it where I didn't have to know the host address, since that could be changing.

The 'http' object is a regular require('http'), NOT require('express').

Answer

ebohlman picture ebohlman · Jul 6, 2012
response.writeHead(301,
  {Location: 'http://whateverhostthiswillbe:8675/'+newRoom}
);
response.end();