当前位置: 首页 > 知识库问答 >
问题:

向Express路由传递多个回调函数

岳泳
2023-03-14

null

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)

请注意,没有array[],但是两个回调函数以逗号分隔的形式传递。这起作用了。只是好奇怎么会?

共有2个答案

秦宁
2023-03-14

它的工作是由于中间件。看看这个

洪知
2023-03-14

在Javascript中,无论函数定义是什么,都可以将任意数量的参数传递到函数调用中。例如,可以使用两个以上的参数调用 。当程序员事先不知道函数调用将接收多少参数时,他们会利用参数这一特殊变量。express中的路由函数(。get,。put,。post等)就是这种情况。它们接受您传入的任意数量的参数,并将它们视为中间件函数,正如您在文档中看到的那样。

 类似资料:
  • 我有一个类来注册和执行我的自定义endpoint。 如果我在类之外注册我的endpoint,我可以在回调函数中获取我的endpoint的参数。但是在类内部,参数不会传递 代码如下: 以下是我运行此终结点时得到的内容 知道为什么吗?

  • 问题内容: 我有一个用Java实现的javascript接口,该接口由Web视图中加载的javascript代码调用。 JS Inside webview: Java: 通过webview加载的字符串最终是: 我有一些想法: 一个。在JS中以字符串形式构建回调。 b。在将回调传递给Android.myFunction()之前,先调用回调的toString(); 我的问题是,最好的方法是什么?我希望

  • 我需要将数据传递到我的路由器,以便在目的地组件中使用它,我使用了< code>NavigationExtras的< code>QueryParam,但它在URL中显示参数,还有其他传递数据的方法吗?

  • 对于下面的代码: 我有一个路由器路由到另一个路由器,看起来像这样: 处理程序如下所示: 我的问题是处理程序无权访问请求.params 中的campaign_uid。如何访问campaign_uid/传递给处理程序?

  • Routing refers to how an application’s endpoints (URIs) respond to client requests. For an introduction to routing, see Basic routing. You define routing using methods of the Express app object that c

  • 问题内容: 如何在Swift中传递C回调?考虑以下示例: 问题答案: 使用Swift 2.0,现在可以在纯Swift中设置回调了!请检查http://oleb.net/blog/2015/06/c-callbacks-in- swift/ 和Swift2无法调用类型类型为参数的’FSEventStreamCreate’