Node.js 使用express/nodejs服务静态文件

Node.js 使用express/nodejs服务静态文件,node.js,express,Node.js,Express,我已设置静态文件,如下所示: app.use(express.static(__dirname)); app.get('/', function(req, res) { res.locals.message = 'Hello!'; res.render('index'); }); 这似乎奏效了。通常是这样做的吗? 我有点困惑,如果static在同一个端口上启动自己的服务器,如果是这样,这是一个好主意吗?如果不需要高性能或特定的东西,这是标准方法。它不会启动单独的服务器,而是在

我已设置静态文件,如下所示:

app.use(express.static(__dirname));

app.get('/', function(req, res) {
    res.locals.message = 'Hello!';
    res.render('index');
});
这似乎奏效了。通常是这样做的吗?
我有点困惑,如果
static
在同一个端口上启动自己的服务器,如果是这样,这是一个好主意吗?

如果不需要高性能或特定的东西,这是标准方法。它不会启动单独的服务器,而是在收到请求时检查路径,以查看是否可以从作为静态添加的目录之一提供具有指定名称的文件

为了提高性能,您可以做两件主要的事情。第一个是一个简单的解决方案-如果在其余处理程序之前添加
express.static
,则每个请求都会导致磁盘读取,以检查是否存在具有该名称的文件。您可以通过将静态中间件放在最后一个位置(或者将其安装在前缀处:例如,
/static
)来解决此问题

如果这还不够好,标准的解决方案是在node.js服务器前面安装一台高性能服务器。一个例子是nginx服务器,它针对服务静态文件进行了高度优化。它可以处理对静态文件的请求,并将其余文件重定向到您的节点应用程序