Node.js 如何在express.js中的函数外部打印结果?

Node.js 如何在express.js中的函数外部打印结果?,node.js,express,Node.js,Express,我已经返回了在express.js中获取所有参数文档的函数。我想在find函数之外打印结果。如何完成此操作帮助我解决问题 exports.show = function(req, res) { var parameterObject = []; var produtObject = []; Parameter.find().exec(function (err, Parameters) { if(err) { return handleError(res, err); } par

我已经返回了在express.js中获取所有参数文档的函数。我想在find函数之外打印结果。如何完成此操作帮助我解决问题

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);

}

现在我得到的是空的[]对象。

您不能在外部访问它,因为
参数.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);
    })

}

我的问题是不同的。从不同的角度来说,它并没有什么不同,您传入的
exec()
回调是异步的,您希望使其同步。我建议你研究一下
生成器
承诺
和ES7
异步
/
等待
@mojo你现在修好了吗?是的,我想解决这个问题@NewbeeDev@mojo不管怎样,你想在外面访问它的目的是什么@NewbeeDev你能帮我查一下吗@NewbeeDev