2017-06-07 51 views
0

我想做一個幫手,將用於我的看法(帕格),所以我發送一個函數作爲數據到視圖文件,但問題是,我的幫手/傳遞功能不會返回在我看來,哈巴狗未定義的值或者==,感謝res分辨率內數據庫函數返回值

app.get('/admin/pengguna', function(req,res){ 
    db.all("SELECT * FROM main_posts WHERE wdyw='2'", function(err, rows) { 
     //var r = db.all("SELECT * FROM main_posts WHERE wdyw='1' AND ") 
     if (!err) { 
      res.render('admin/pengguna', { 
       path: req.path, 
       pengguna : rows, 
       useringroup: function(w) { 
        db.all("SELECT * FROM main_posts WHERE wdyw='1' AND identity= $w", { $w: w }, function(err, result){ 
         return result.lenght; 
        }) 
       } 
      }) 
     } 
    }) 
}) 

enter image description here enter image description here

+0

你明白爲什麼'return w'後面的'db.all'不會執行嗎? –

+0

我不知道,也許會導致異步? –

+0

結果是內部'db.all'不會運行 - 這是你期望的嗎?但是,我不認爲這是你正在談論的問題,似乎你不完全明白異步代碼 –

回答

0

等待數據庫返回的數據,然後渲染視圖。您的視圖無法直接撥打數據庫。這就是我們使用MVC(模型視圖控制器)的原因。您需要獲取控制器中的所有數據,然後通過它來查看。

您將需要使用這樣的事情,

app.get('/admin/pengguna', function(req,res){ 
    db.all("SELECT * FROM main_posts WHERE wdyw='2'", function(err, rows) { 
     //var r = db.all("SELECT * FROM main_posts WHERE wdyw='1' AND ") 
     if (!err) { 
      db.all("SELECT * FROM main_posts WHERE wdyw='1' AND identity= $w", { $w: w }, function(err, result){ 
       res.render('admin/pengguna', { 
        path: req.path, 
        pengguna : rows, 
        useringroup: result.length 
       }) 
      }) 

     } 
    }) 
}) 

你也將需要調整您的代碼w。在從傳遞給視圖的函數中獲取它之前。您需要通過任何其他方法獲取其值,或修改查詢。