2017-05-22 18 views
0

「送信後にヘッダーを設定できません。このエラーは、res.render()が2回呼び出されたときに発生することがわかりましたが、私に役立つ決定的な解決策が見つからなかった...エラー:送信後にヘッダーを設定できません

私のケースでは、 GET要求をインデックスページに送り、セッション中にユーザーがいる場合は、関連するパラメータを含むインデックスページを表示します。

どのような考えですか?

var express = require('express'); 
var path = require('path'); 
var Schemes = require('../library/dbModels.js'); 
var router = express.Router(); 


/* GET home page and preform validation on user */ 
router.get('/index',function(req, res){ 
    if(req.session && req.session.user) 
    { 
    Schemes.User.findOne({eMail:req.session.user.eMail},function(err,user) { 
     if(!user) 
     { 
     req.session.reset(); 
     res.render('login',{error:"Please log in ..."}) 
     } 
     else 
     { 
     res.locals.user=user; 
     res.render('index',{user:user}); 
     } 
    }); 
    } 
    else{ 
    res.render('login',{error:"Please log in ..."}) 
    } 
    res.render('index', { title: 'Index' }); 
}); 


module.exports = router; 
+0

'res.end()'をお探しですか? –

+0

問題は 'res.render( 'index'、{title: 'Index'}))'にあります。だからもしかしたら、それは実行されるので、あなたはこのエラーを受けています。 – Subburaj

答えて

1

これと同じアクションがif(!user)else条件で行ったので、私は、最後のres.render('index', { title: 'Index' });を削除しました。

router.get('/index',function(req, res){ 
    if(req.session && req.session.user) { 
     Schemes.User.findOne({eMail:req.session.user.eMail}, function(err,user) { 
      if(!user) { 
       req.session.reset(); 
       res.render('login',{error:"Please log in ..."}) 
      } else { 
       res.locals.user=user; 
       res.render('index',{user:user, title: 'Index' }); 
      } 
     }); 
    } else { 
     res.render('login',{error:"Please log in ..."}) 
    } 
}); 
+0

それはあなたに感謝しました! (私は最初にそれを気付かなかった....)------> Iv'eは私の質問へのあなたの答えのための小さな修正を加えました...ありがとう!!!!!! –

+0

お手伝いをしてうれしいです。 –

関連する問題