Comment redirect l’URL du navigateur de l’utilisateur vers une autre page dans Nodejs?

Dans l’application que j’essaie d’écrire, la page principale ( http: // localhost: 8675 ) a la forme suivante:

Voici le code dans 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 ... }}} 

J’aimerais beaucoup qu’il y ait un moyen de le faire sans connaître l’adresse de l’hôte, car cela pourrait changer.

L’object ‘http’ est un besoin régulier (‘http’), PAS requirejs (‘express’).

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

OP: “J’adorerais qu’il y ait un moyen de le faire sans connaître l’adresse de l’hôte …”

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

Vous pouvez utiliser la méthode res.render () ou res.redirect () pour redirect vers une autre page en utilisant node.js express

Par exemple:

 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) }); 

Ici, dans la section de connexion, si l’adresse e-mail et le mot de passe correspondent dans la firebase database, le site est dirigé vers dashbaord.html, sinon nous afficherons page-error.html en utilisant la méthode res.redirect (). Vous pouvez également utiliser res.render () pour rendre une page dans node.js