2016-10-31 11 views
0

私はフォームを持っており、データベースに情報を挿入しています。その部分は完璧に動作しますが、後で別のページにリダイレクトするにはどうすればよいですか?データベースにデータを投稿した後、別のページにリダイレクトするにはどうすればよいですか?

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

答えて

1

リファレンスhereはnodejsためhttp.Response APIをレビューします。 response.writeHead(からstatusCode【、statusMessage] [、ヘッダー])

リダイレクトするためのステータスコードは、302 3XXレベルであり、このラインを以下

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

redirect: '/home'; 

を交換例は 'found'のためのものです 'Location'ヘッダーはリダイレクトするパスを

に記載しています。オプションのステータスコードが明示的に表現されていない場合hereをENCE​​と

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

を使用し、それはあなたがres.redirect()メソッドを使用することができますエクスプレスでデフォルト

2

で「が見つかり」になります。完全なドキュメントについては、click hereをご覧ください。あなたのケースでは

、交換してください:

redirect: '/home'; 

と次のように:デフォルトで

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

それは、302のステータスコードを送信 かは、ステータスコードを渡すことができます第1パラメータ

res.redirect(301, pathname) 
関連する問題