【问题标题】:Where does the callback within this express app coming from?这个快速应用程序中的回调来自哪里?
【发布时间】:2019-07-03 01:51:46
【问题描述】:

在一些 freecodecamp 之后,我开始从 MDN (https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Displaying_data/Home_page 2) 为一些后端做 Express js 教程。

我一直在理解 async.parallel 中的回调来自哪里以及代表什么。

如果我删除回调,网站将无法加载,所以它一定有一些重要的意义,但不幸的是我没有胶水。是否调用 function(err, results) { res.render('index', […] }) 以使结果可用于数据?

var Book = require(’…/models/book’);
var async = require(‘async’);
exports.index = function(req, res) {
    async.parallel({   
        book_count: function(callback) {
            Book.countDocuments({}, callback);
        },
        [...]
        [...]
    function(err, results) {
        res.render('index', { 
            title: 'Local Library Home', 
            error: err, data: results 
        });
    });
};

【问题讨论】:

  • 很难知道你在这里问什么。 Edit 清晰地格式化代码并向我们展示您得到的结果并告诉我们您期望的结果的问题。
  • 我认为你应该先阅读这个codeburst.io/… 来了解异步。 async.parallel 需要一些时间来运行它,然后在它有结果后,它会将结果传递给回调,并调用回调来渲染页面。如果您删除回调, res.render 将永远不会调用。所以它不会渲染任何东西。您的客户端没有收到响应,因此您的网站将无法加载。

标签: node.js express


【解决方案1】:

回调是在异步请求完成时调用的通用函数。

   在此特定实例中,回调被用作获取数据输出的方法填写页面上书籍数量的异步请求。这些是必需的,因为这些查询是非阻塞的,这意味着 Javascript 将继续执行其他周围的代码,直到调用回调。如果您想了解更多关于它们一般如何工作的详细信息,请查看@dnp1204 之前提到的here。我希望这能回答你的问题。

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 2017-06-04
    • 2021-11-14
    • 1970-01-01
    • 2011-03-12
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    相关资源
    最近更新 更多