比方說,我有一個明確的Web應用程序針對我加入一些標準的中間件:Express:app.use()將middeware添加爲多個參數與單獨的語句?
app.use(express.static(config.staticRoot, { maxAge: 300000 }));
app.use(compression());
app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
app.use(passport.session());
什麼是上面的區別,如果我把它稱爲是這樣的:
app.use(
express.static(config.staticRoot, { maxAge: 300000 }),
compression(),
cookieParser(),
bodyParser.json(),
bodyParser.urlencoded({ extended: true }),
passport.initialize(),
passport.session()
);
'app.use'只是[Router#use()']的代理(https://github.com/expressjs/express/blob/master/lib/application.js#L178)。 – lifeisfoo
通過文檔查看它看起來像這兩者之間的唯一區別是,如果您想爲中間件功能指定單獨的路徑,則可以使用單個app.use調用。 app.use('/ path1',compression());否則,如果他們都將在相同的路徑上,那麼app.use函數允許您定義一系列中間件函數,就像您在第二個示例中所做的一樣。 – Rnice4christ