为什么有些中间件函数会被调用括号传入(而匿名函数在没有被调用的情况下被传入)?
app.use(logger());
app.use(bodyParser());
不会立即评估logger()
并将返回值传递到app.use()
? app.use()
怎么没有收到undefined
作为参数?
答案 0 :(得分:4)
不会立即评估
logger()
并将返回值传递到app.use()
?
是
app.use()
怎么没有收到undefined
作为参数?
因为logger()
和bodyParser()
是返回中间件的函数。也就是说,他们自己不是中间件处理程序。这是Express中间件的常见模式:导出一个函数,该函数接受可用于配置返回的中间件的选项。