大家好,我是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),这是什么意思?
预先感谢您的关注
答案 0 :(得分:1)
我个人将使用数组来传递多个中间件函数,但是您可以使用其中任何一个。参见documentation for app.get()
。
关于next(err)
–签出the documentation并查找标题为“
“错误处理中间件”。如果调用next()
并传递一个Error对象,则您指定为错误处理程序的函数将运行。这是处理从路由返回错误时要发生的控制流的好方法。