node.js - 表达静态中间件 - 每次客户端下载文件时它都会从磁盘读取文件吗?

标签 node.js express

我使用 Express static 中间件来服务器静态文件。我还使用 compress 中间件。我的问题是,express 是否从磁盘读取文件并在每次返回(下载)给客户端时对其进行压缩?或者它可能会在内存中缓存压缩文件?

最佳答案

是的,静态中间件将执行磁盘 I/O。

在内部,它没有做太多事情,并将所有工作委托(delegate)给 send dependency,这是一个专门用于优雅地处理请求的包,这些请求解析为从某个根的磁盘流式传输的响应。

它不会在内存中缓存任何内容,但是它能够返回正确的缓存 header 并使用 HTTP 304 响应进行响应(如果您想在此基础上构建一些内容来存储响应并提供服务)凭内存。

这对于大多数 Node.js 文件服务器来说是最接近完美的,但请注意您的特定要求。还有其他 HTTP 服务器,例如 Varnish 或 Nginx,更适合高级要求。

关于node.js - 表达静态中间件 - 每次客户端下载文件时它都会从磁盘读取文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24997503/

相关文章:

node.js - 带有 $project 的 mongodb 聚合有条件地排除一个字段

javascript - 快速路由 - 数据库调用和范围

javascript - WebStorm 6 无法识别 Node.js Express 发布方法

javascript - 从 Angular 4 应用程序接收时表示接收空请求正文

node.js - 同步检查 Node.js 中是否存在文件/目录

javascript - Meteor 将集合数据放在 Div 中

node.js - 如何正确删除 MongoDB 中的孤立引用?

node.js - Mac OSX 上 Node 版本的矛盾

node.js - 如何在nodejs Express服务中的查询参数中发送整数

node.js - 为什么未发送 Set-Cookie header ? -- 使用 Restify