2017-04-18 5 views
0

メインページにリダイレクトするのではなく、リクエストがユーザーを見つけられず、ハングするのはなぜですか?これはどのように救済できますか?クエリがユーザーを見つけることができない場合、ページがリダイレクトされないのはなぜですか?

  User.findOne({_id: userid}, function(err, user) { 
       if(err) { 
        res.redirect('/'); 
       } 
       if (user) { 
        res.render('user',{ 
         title: user.nickname, 
         id: user._id, 
         nickname: user.nickname, 
         email: user.email, 
         name: user.name, 
         surname: user.surname, 
         age: user.age, 
         country: user.country, 
         city: user.city, 
         phoneNumber: user.phoneNumber, 
         myId: req.user._id 
        }) 
       } 
      }); 

答えて

2

何かを見つけていないので、以下を試してみてください、エラーを持つとは異なっている:

User.findOne({_id: userid}, function(err, user) { 
      if(err || !user) { 
       res.redirect('/'); 
      } 
      else { 
       res.render('user',{ 
        title: user.nickname, 
        id: user._id, 
        nickname: user.nickname, 
        email: user.email, 
        name: user.name, 
        surname: user.surname, 
        age: user.age, 
        country: user.country, 
        city: user.city, 
        phoneNumber: user.phoneNumber, 
        myId: req.user._id 
       }) 
      } 
     }); 
+1

簡単ポイント:

は、ステートメントの場合は、最初を変更してみてください。ありがとう! –

+0

あなたは大歓迎です:) –

1

要求にエラーがある場合のみ、リダイレクトします。エラーがなく、ユーザーがいない場合、何も起こりません。 findOneで一致するものが見つからない場合は、エラーではなく空のドキュメントが返されます。あなたのための

if(err || !user) { 
    res.redirect('/'); 
} 
関連する問題