2017-02-28 3 views
0

route.jsUndefindedエラー

router.get('/restful', function(req, res){ 
    console.log("before"); 
    User.show_deatils(req, res, function(err, resultArray){ 
    if(!err) { 
    req.session.resultArray=resultArray; 
    } 
    }); 
    console.log(req.session.resultArray); 
    res.render('restful',{resultArray:req.session.resultArray}); 
}); 

私はconsole.log()req.session.resultArray=resultArrayは、我々が得ている直後結果配列。

このresultArrayview.ejsに表示します。誰も私にそれを解決する方法を提案することができます。私はそれを逃しているものは何ですか?

+0

[非同期呼び出しからの応答を返すにはどうすればよいですか?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-呼び出し) –

答えて

0

console.logは、async関数が実際にデータベースから詳細を取得する前に実行されます。あなたは未定義になる。 コールバック内でレンダリングを行います。つまり、結果配列をセッションに割り当てた後です。

router.get('/restful', (req, res, next) { 
     User.show_deatils(req, res, function(err, resultArray) { 
      if(!err) { 
       req.session.resultArray=resultArray; 
       return res.render('restful' {resultArray:req.session.resultArray})); 
      } 
     }); 
}); 
+0

これは、セッション – riza

+0

の試行後に割り当てた場合、ページを読み込むことを許可していませんか?セッションの後に何を意味しますか?ここでの基本的な考え方は、ページを入力するとサーバーがデータベースから詳細を取得し、 'resultArray'が' req.session'変数に代入され、それ以降は関数を実際に返しますresultArray – Gnanesh

+0

なぜこのページを読み込むことができないのか分かりません。 router.get( '/ restful'、function(req、res)){ console.log( "前"); User.show_deatils(req、res、function(err、resultArray){ if(!err){ req.session.resultArray = resultArray; にconsole.log(req.session.resultArray); }}); res.render( '安らか'、{resultArray:req.session.resultArray}) ; }); これは、安らかなページにナビゲートすることを可能にしています。しかし、resultArrayの値は「未定義」になっています。どこで私は間違いをしているのですか?それを見つけることができます。 – riza

0

はちょうどこの

router.get('/restful', function(req, res){ 
      console.log("before"); 
      User.show_deatils(req, res, function(err, resultArray){ 
      if(!err) { 

      res.render('restful',{resultArray:resultArray}); 
      } 
      }); 
     }); 

ように私はこれが何をしたいと思います。

+0

私は外出しようとしました。安らかなウェブページ自体にナビゲートしません。 – riza

関連する問題