2016-11-22 31 views
-1

我返回功能讓所有的參數文件中express.js。我要打印查找function.how外的結果可以完成這件事幫我如何在express.js中的函數外打印結果?

exports.show = function(req, res) { 
var parameterObject = []; 
var produtObject = []; 
Parameter.find().exec(function (err, Parameters) { 
    if(err) { return handleError(res, err); } 
    parameterObject.push(Parameters); 

    }); 

    Product.find().exec(function (err, Products) { 
    if(err) { return handleError(res, err); } 
    produtObject.push(Products); 

    }); 
    console.log(parameterObject); 
    console.log(produtObject); 

} 

現在安慰我得到空[]對象。

+0

怎麼來的重複這就是爲DIFF我的問題回調不同 –

+0

其實這是沒有什麼不同,你在'exec()'中傳遞的回調是異步的,你想讓它同步。我建議你研究一下'generator','promises'和ES7' async' /'await' – 2016-11-22 05:39:11

+0

@mojo你現在修復了嗎? – Beginner

回答

1

您無法訪問外,因爲Parameter.find()是異步 ,但你可以通過它傳遞變量parameterObject

exports.show = function(req, res) { 
var parameterObject = []; 

    function MethodName(callback) { 
     Parameter.find().exec(function (err, Parameters) { 
      if(err) { return handleError(res, err); } 
      parameterObject.push(Parameters); 
      return callback(parameterObject); 
     }); 
    } 

    MethodName(function(parameterObject) { 
     console.log(parameterObject); 
    }) 

} 
+0

http ://stackoverflow.com/questions/40737716/how-can-get-two-collection-documents-and-calculate-points-using-express-js @NewbeeDev –

+0

你可以檢查先生 –

+0

幫我出去http:// stackoverflow.com/questions/40931821/how-to-combine-two-collection-based-on-idtransectionid-using-node-js @NewbeeDev –