快速路线处理程序

时间:2018-08-10 18:38:56

标签: node.js express

大家好,我是nodejs和express的新手,我仍在阅读Express指南,但我无法实现将路由处理程序作为功能数组的目的。

这是示例:

考虑这两个功能

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

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

这有什么区别:

app.get('/example/d', [cb0, cb1], function (req, res, next) {
  console.log('the response will be sent by this function ...')
})

还有一个?

app.get('/example/d', cb0, cb1, function (req, res, next) {
  console.log('the response will be sent by thisfunction ...')

})

请帮我了解为什么要使用数组?

还有一个问题,我在一些代码中注意到,我们将error作为下一个函数的参数传递给了next(error),这是什么意思?

预先感谢您的关注

1 个答案:

答案 0 :(得分:1)

我个人将使用数组来传递多个中间件函数,但是您可以使用其中任何一个。参见documentation for app.get()

关于next(err) –签出the documentation并查找标题为“ “错误处理中间件”。如果调用next()并传递一个Error对象,则您指定为错误处理程序的函数将运行。这是处理从路由返回错误时要发生的控制流的好方法。