Express中的app.use()语法

时间:2015-07-27 18:15:11

标签: javascript express

为什么有些中间件函数会被调用括号传入(而匿名函数在没有被调用的情况下被传入)?

app.use(logger());
app.use(bodyParser());

不会立即评估logger()并将返回值传递到app.use()app.use()怎么没有收到undefined作为参数?

1 个答案:

答案 0 :(得分:4)

  

不会立即评估logger()并将返回值传递到app.use()

  

app.use()怎么没有收到undefined作为参数?

因为logger()bodyParser()返回中间件的函数。也就是说,他们自己不是中间件处理程序。这是Express中间件的常见模式:导出一个函数,该函数接受可用于配置返回的中间件的选项。