【问题标题】:Passing multiple callback functions to Express route将多个回调函数传递给 Express 路由
【发布时间】:2016-04-14 16:36:33
【问题描述】:

根据 express 文档here,我们可以将 HTTP 方法附加到 express 实例上,并在路由匹配时执行回调函数。 我们还可以执行多个回调路由处理程序。路由处理程序可以是函数、函数数组或两者组合的形式,如以下示例所示。

app.get('/', function (req, res) {
   res.send('GET request to the homepage');
});

或使用数组

  var cb0 = function (req, res, next) {
    console.log('CB0');
    next();
  }

  var cb1 = function (req, res, next) {
   console.log('CB1');
   next();
  }

  var cb2 = function (req, res) {
    res.send('Hello from C!');
  }

  app.get('/example/c', [cb0, cb1, cb2])

但是,在我们的应用程序中,我看到开发人员使用的语法是

app.get('/example/c',cb0, cb1)

请注意没有数组 [],但 2 个回调函数以逗号分隔传递。这是有效的。但只是好奇怎么做?

【问题讨论】:

    标签: node.js express callback routes


    【解决方案1】:

    在 Javascript 中,无论函数定义是什么,您都可以将任意数量的参数传递给函数调用。例如,function x(a, b){} 可以使用两个以上的参数调用。当程序员事先不知道函数调用将接收多少个参数时,他们会利用arguments 特殊变量。 express 中的路由功能就是这种情况(.get、.put、.post 等)。它们接受您传入的任意数量的参数并将它们视为中间件函数,如您在documentation 中所见。

    【讨论】:

      【解决方案2】:

      它的工作是由于中间件。 check this out

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2018-05-02
        • 2016-02-25
        • 2021-01-28
        • 1970-01-01
        • 2019-12-07
        • 1970-01-01
        相关资源
        最近更新 更多