我使用 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/