<分区>
我有一个包含以下代码的文件:
const logger = (options) => (req, res, next) => {
if (typeof options === 'object'
&& options !== null
&& options.enable) {
console.log(
'Status Code:', res.statusCode,
'URL:', req.originalUrl,
)
}
next()
}
module.exports = logger
它在不同的 .js 文件中这样使用:
const express = require('express')
const loggerMiddleware = require('./middleware-logger')
const app = express()
app.use(loggerMiddleware({
enable: true,
}))
app.listen(
1337,
() => console.log('Web Server listening on 1337'),
)
谁能解释一下第一行中的 => 系列发生了什么?我理解正常的 (req,res,next) => {} 意思是这样的:
“有一个未命名的函数,它有 3 个参数,由大括号中的内容定义。
在使用箭头运算符系列的这种情况下,我没有“理解”的是函数 def 如何可以同时看到 (options) 和 (req,res,next) 中的所有参数。
幕后到底发生了什么?这与 promise 有关吗?同样,一个方法 def 怎么能同时看到所有参数?