Express JS中间件的订购

问题描述 投票:0回答:1

我当时正在使用Express JS,并且正在使用express-session。如果我不把app.use(session())中间件放在第一位,那是行不通的。

app.use(session({
     name: 'server-session-cookie-id',
     secret: 'my express secret',
     saveUninitialized: true,
     resave: true
}));
app.use('/', routes);
app.set("view engine", "pug");
app.set("views", path.join(__dirname + "/views"));
app.use(flash());

如果app.use(session())是第一个写的,则表示req.session.someVariable未定义。

有人可以解释Express如何调用中间件app.use吗?

我当时正在使用Express JS,并且正在使用express-session。如果我没有将app.use(session())中间件放在第一个app.use(session({name:'server-session-cookie-id',...

node.js express express-session
1个回答
0
投票

按注册顺序检查所有Express路由处理程序(无论app.use()app.get()app.post()还是其他任何东西)是否存在路由匹配。此外,一旦路由发送了请求且未调用next(),则不会再检查其他路由来查找与当前请求的匹配。该请求的所有处理将完成。

© www.soinside.com 2019 - 2024. All rights reserved.