如何使用 node.js 和 express 实现虚拟目录



我想使用快速静态服务器配置来实现静态服务器:

app.configure(function() {
    app.use(express.static(__dirname + '/public'));
});

但是我想将 URL http://myhost/url1映射到目录 C:dirAdirBhttp://myhost/url2映射到目录C:dirC

如何使用express.static实现它?

这应该适合您:

var serveStatic = require( "serve-static" );
app.use('/url1', serveStatic('c:\dirA\dirB'));
app.use('/url2', serveStatic('C:\dirC'));

看看 app.use() 的文档。

根据您计划以这种方式映射的目录数量,您可以简单地为public文件夹中的这些目录创建符号链接。

在窗口中:

mklink /D c:dirAdirB publicurl1

在 Linux 或 OSX 中:

ln -s /dirA/dirB public/url1

然后,您的静态资产服务器应该透明地从这些目录提供服务(我从未在Windows上测试过,但我不明白为什么它不起作用)。

或者,如果你想包含某种动态路由,你可以编写自己的中间件来替换实际上connect.static在引擎盖下express.static。 看看连接源中的静态.js,看看它是如何实现的,编写自己的变体应该相当简单。

最新更新