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
...
}}}
Does anyone know how to go about redirecting the user's web browser to a different page? 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').
response.writeHead(301,
{Location: 'http://whateverhostthiswillbe:8675/'+newRoom}
);
response.end();
http.get('*',function(req,res){
res.redirect('http://mydomain.com'+req.url)
})
OP: "I would love if there were a way to do it where I didn't have to know the host address..."
response.writeHead(301, {
Location: (request.socket.encrypted ? 'https://' : 'http://') +
request.headers.host + newRoom}
);
response.end();