【问题标题】:How can i print the result outside the function in express.js? [duplicate]如何在 express.js 的函数之外打印结果? [复制]
【发布时间】:2016-11-22 13:55:43
【问题描述】:

我已经返回了在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);

}

现在控制台我得到了空的 [] 对象。

【问题讨论】:

  • 为什么它的重复是差异我的问题是不同的
  • 其实不一样,你传入exec()的回调是异步的,你想让它同步。我建议你研究一下generatorspromises 和 ES7 async/await
  • @mojo 你现在修好了吗?
  • 是的,我想解决这个问题@NewbeeDev
  • @mojo 你想在外面访问它的目的是什么?

标签: node.js express


【解决方案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);
    })

}

【讨论】:

猜你喜欢
  • 2016-05-08
  • 2021-07-10
  • 2016-11-22
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多