Javascript Express server需要500毫秒才能返回304响应

Javascript Express server需要500毫秒才能返回304响应,javascript,node.js,express,Javascript,Node.js,Express,我有一个非常简单的express服务器。它具有压缩,并使用静态服务来服务文件。我将cacheControl设置为false,因此它只使用ETag 服务器将为文件返回一个304(这是需要的),但这样做大约需要500毫秒。这与实际发送文件所需的时间相同 我可以做一些配置(除了Varnish和nginx之外)来加速它吗 服务器只有大约6个不同的文件要提供,全部是静态的 快速服务器代码: const path = require('path'); const express = require('exp

我有一个非常简单的express服务器。它具有
压缩
,并使用
静态服务
来服务文件。我将
cacheControl
设置为false,因此它只使用ETag

服务器将为文件返回一个304(这是需要的),但这样做大约需要500毫秒。这与实际发送文件所需的时间相同

我可以做一些配置(除了Varnish和nginx之外)来加速它吗

服务器只有大约6个不同的文件要提供,全部是静态的

快速服务器代码:

const path = require('path');
const express = require('express');
const compression = require('compression');
const serveStatic = require('serve-static');

const PORT = process.env.PORT || 9095;

const app = express();

app.use(compression({ threshold: 0 }));

app.use(/regex pattern here/, serveStatic(path.join(__dirname, '../dist/client/assets'), { cacheControl: false }));

app.listen(PORT, (error) => {
  console.log(error || `Listening on port ${PORT}`);
});

您应该使用nginx或类似的工具来服务静态内容,因为节点服务静态模块需要从文件内容计算散列。所以这甚至比仅仅在本地机器上提供文件还要慢。
下面是对服务静态机制的深入研究

结果表明,技巧是使用
节点_ENV=production运行express服务器

显然,这让Express做了很多优化,其中一个似乎正是我想要的。从500毫秒到40毫秒返回304,这要好得多


参考资料:

为什么需要计算散列?谢谢你的回答。在这种情况下,虽然,我正在寻找一些不使用清漆或nginx。我可能需要写一些代码来缓存内存中的所有内容,因为提供的文件太少了。