¿Cómo redirigir la URL del navegador del usuario a una página diferente en Nodejs?

En la aplicación que bash escribir, la página principal ( http: // localhost: 8675 ) tiene la siguiente forma:

Aquí está el código en 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 ... }}} 

Me encantaría si hubiera una manera de hacerlo, donde no tenía que saber la dirección del host, ya que eso podría estar cambiando.

El objeto ‘http’ es un requerimiento regular (‘http’), NO requiere (‘express’).

 response.writeHead(301, {Location: 'http://whateverhostthiswillbe:8675/'+newRoom} ); response.end(); 
 http.get('*',function(req,res){ res.redirect('http://mydomain.com'+req.url) }) 

OP: “Me encantaría si hubiera una manera de hacerlo, donde no tenía que saber la dirección del host …”

 response.writeHead(301, { Location: "http" + (request.socket.encrypted ? "s" : "") + "://" + request.headers.host + newRoom }); response.end(); 

Puede usar el método res.render () o res.redirect () para redirigir a otra página utilizando node.js express

P.ej:

 var bodyParser = require('body-parser'); var express = require('express'); var navigator = require('web-midi-api'); var app = express(); app.use(express.static(__dirname + '/')); app.use(bodyParser.urlencoded({extend:true})); app.engine('html', require('ejs').renderFile); app.set('view engine', 'html'); app.set('views', __dirname); app.get('/', function(req, res){ res.render("index"); }); //This reponds a post request for the login page app.post('/login', function (req, res) { console.log("Got a POST request for the login"); var data = { "email": req.body.email, "password": req.body.password }; console.log(data); //Data insertion code var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/"; MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("college"); var query = { email: data.email }; dbo.collection("user").find(query).toArray(function(err, result) { if (err) throw err; console.log(result); if(result[0].password == data.password) res.redirect('dashboard.html'); else res.redirect('login-error.html'); db.close(); }); }); }); // This responds a POST request for the add user app.post('/insert', function (req, res) { console.log("Got a POST request for the add user"); var data = { "first_name" : req.body.firstName, "second_name" : req.body.secondName, "organization" : req.body.organization, "email": req.body.email, "mobile" : req.body.mobile, }; console.log(data); **res.render('success.html',{email:data.email,password:data.password});** }); //make sure that Service Workers are supported. if (navigator.serviceWorker) { navigator.serviceWorker.register('service-worker.js', {scope: '/'}) .then(function (registration) { console.log(registration); }) .catch(function (e) { console.error(e); }) } else { console.log('Service Worker is not supported in this browser.'); } // TODO add service worker code here if ('serviceWorker' in navigator) { navigator.serviceWorker .register('service-worker.js') .then(function() { console.log('Service Worker Registered'); }); } var server = app.listen(63342, function () { var host = server.address().host; var port = server.address().port; console.log("Example app listening at http://localhost:%s", port) }); 

Aquí en la sección de inicio de sesión, si el correo electrónico y la contraseña coinciden en la base de datos, entonces el sitio se dirige a dashbaord.html, de lo contrario, mostraremos page-error.html utilizando el método res.redirect (). También puede usar res.render () para representar una página en node.js