关于 node 中间件 的问题
来源:10-5 响应结果封装
希卡利
2020-01-08
为什么 router.use( (err, req, res, next) => {} )
中的err为什么要写在第一个?
如果我 router.use( (req, res, next) => {} ) 不需要err,为什么不会出现问题?
js 语法应该没有Overload的这个概念的吧?
写回答
1回答
-
你好,这个用法和语法无关,完全是 express 的规定!express 的语法规定,如果中间件的回调函数传入四个参数,那么这个回调就是处理自定义异常,并且第一个参数必定为 err,如果传入三个参数就是普通中间件,不会处理异常。这两者有本质区别。处理异常方法通常放在最后,而普通中间件放在处理请求之前。
212020-03-05
相似问题