关于 node 中间件 的问题

来源:10-5 响应结果封装

希卡利

2020-01-08

为什么 router.use( (err, req, res, next) => {} )
中的err为什么要写在第一个?
如果我 router.use( (req, res, next) => {} ) 不需要err,为什么不会出现问题?
js 语法应该没有Overload的这个概念的吧?

写回答

1回答

Sam

2020-01-10

你好,这个用法和语法无关,完全是 express 的规定!express 的语法规定,如果中间件的回调函数传入四个参数,那么这个回调就是处理自定义异常,并且第一个参数必定为 err,如果传入三个参数就是普通中间件,不会处理异常。这两者有本质区别。处理异常方法通常放在最后,而普通中间件放在处理请求之前。

2
1
希卡利
非常感谢!
2020-03-05
共1条回复

Vue Element+Node.js开发企业通用管理后台系统

基于Element的中后台课程,一套中小型企业通用的后台管理系统

2829 学习 · 1714 问题

查看课程