使用以下express.js应用程序:
app.use( cookieParser );
app.use( session( /*options*/) );
app.use( serveStatic( './dir' ) );
app.get( '/foo', onlyLogicThatNeedsSession )
我认为即使在提供静态文件时也会获取会话数据。
1 :这是对的吗?
如果是这样,那就意味着应用程序的结构会更好:
app.use( serveStatic( './dir' ) );
app.get( 'foo', cookieParser, session, onlyLogicThatNeedsSession )
2 :会带来性能优势吗?即如果会话存储是redis,redis服务器在提供静态文件时不会被命中?
答案 0 :(得分:3)
是的,中间件按顺序执行,因此理想情况下,您可以将静态中间件置于最顶端,以便绕过任何不必要的额外请求处理。