【发布时间】:2014-10-23 23:53:13
【问题描述】:
我正在阅读Express.js API reference 中的两个示例,但我不明白。
示例 1
现在假设您想忽略对静态文件的日志记录请求,但继续记录在 logger() 之后定义的路由和中间件。你可以简单地将 static() 移到它上面:
app.use(express.static(__dirname + '/public'));app.use(logger());// other middleware
这如何导致不记录对静态文件的请求? 所有中间件不是为每个请求执行(按顺序)吗?
示例 2
另一个具体的例子是从多个目录提供文件,让“./public”优先于其他:
app.use(express.static(__dirname + '/public'));app.use(express.static(__dirname + '/files'));app.use(express.static(__dirname + '/uploads'));
我怀疑例如像“/js/stuff.js”这样的请求,第一个中间件检查“/public/js/stuff.js”是否存在。如果是这样,这个中间件会处理请求并且后续的中间件都不会被执行(有点像提前返回)。但是,如果此路径不存在,则此中间件将请求传递给行中的下一个中间件。这是正确的吗?
请解释这两个例子!
【问题讨论】:
标签: javascript node.js http express httprequest