【问题标题】:Callback Basics回调基础
【发布时间】:2014-02-06 14:53:49
【问题描述】:

我对回调中的参数失去了理解。

app.get('/', function(req, res) {
  res.render('index');
});
// A route for the home page - will render a view

这是使用 express 库,是一个基本的主页路由。我只是对这实际上如何获得 req/res 对象感到困惑?每当在'/'页面上接收到req/res对象时,服务器本身是否会调用该函数?

我了解函数的作用,只是不知道它实际上是如何接收参数的。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    是的,您从服务器获取这些参数。每当 Express(即 Node.js)收到请求时,它就会运行您的回调并提供这两个参数。

    把它想象成两个人之间的谈话:

    • 你:'嘿 Golo,我是 X 方面的专家。所以当有人问你关于 X 的问题时,请告诉我并给我他们的电话号码。'
    • 我:'好的,好的,我会这样做的。'
    • (…)
    • 我:'嘿,HelloWorld,我现在有一个请求。联系方式是 +49 177 ...'

    请告诉我他们的电话号码。 是回拨电话。电话号码是回调的参数。

    因此,在这种情况下,电话号码与您的 reqres 对象完全相同。在这个例子中我表现得像 Node.js / Express,你就是运行的应用程序。

    HTH。

    【讨论】:

      【解决方案2】:

      这是一种直观的查看方式:

      app.get() 是一个带有 2 个参数的函数,第一个是作为字符串的路径,第二个参数是一个函数。这个函数会被 app.get() 回调;

      假设您像这样调用app.get

      app.get('/', function abc(req, res){..})
      

      那么,app.get 的实现将类似于:

      app.get = function(path, callBackFunction){
         // do some stuff here to get the values of req and res
         callBackFunction(req, res); // calling back the function passed to us with req and res
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-20
        • 1970-01-01
        • 2013-09-16
        • 2018-01-02
        • 2011-09-15
        • 2016-08-15
        • 1970-01-01
        • 2013-12-30
        相关资源
        最近更新 更多