2016-10-31 5 views
0

Ich habe ein Formular und ich füge Informationen in die Datenbank ein. Dieser Teil funktioniert einwandfrei, aber wie kann ich danach auf eine andere Seite umleiten?Wie kann ich auf eine andere Seite umleiten, nachdem ich Daten an meine Datenbank gesendet habe?

app.post('/create', function (req, res) { 
 
     Room.findOne({'name' :req.body.name}, function(err,room){ 
 
      if(err){ 
 
       return done(err); 
 
      } 
 

 
      if(room){ 
 
       return done(null,false,req.flash('this room name is taken')); 
 
      }else{ 
 
       var newRoom = new Room(); 
 
       newRoom.name = req.body.name; 
 
       newRoom.topic = req.body.topic; 
 
       newRoom.participants = req.body.participants; 
 
       newRoom.type = req.body.type; 
 
      } 
 
      newRoom.save(function(err){ 
 
       if (err){ 
 
        throw err; 
 
       } 
 
       redirect: '/home'; 
 
      })

Antwort

1

Referenz here zu http.Response API für NodeJS zu überprüfen. response.writeHead (status [, status] [, headers])

ersetzt diese Zeile

redirect: '/home'; 

mit folgendem

res.writeHead(302,{ 
      'Location':'/path', 
     }); 
     res.end(); 

der Statuscode für umleitenden ist 3xx Ebene 302 in das Beispiel ist für 'gefunden' Die 'Position'-Kopfzeile wird den Pfad zum Redirect zu

geben Wenn in Express geschrieben, siehe ENCE here und

res.redirect([statusCode,] '/path') 

, wenn der optionale Statuscode verwenden nicht explizit ausgedrückt, wird es standardmäßig

2

Mit Express 302 ‚gefunden‘ werden Sie res.redirect() Methode verwenden können. Für die vollständige Dokumentation click here.

In Ihrem Fall ersetzen:

redirect: '/home'; 

Mit folgendem:

res.redirect(301, '/home'); 
0
res.redirect(pathnam) 

wird standardmäßig sendet den Statuscode 302, oder Sie können den Statuscode passieren, wie der erste Parameter

res.redirect(301, pathname) 
Verwandte Themen