请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 node 中间件 的问题

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

正在回答

1回答

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

2 回复 有任何疑惑可以回复我~
  • 提问者 希卡利 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-03-05 15:27:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信