我怎样才能实现与node.js的虚拟目录和expression?

我想要使​​用快速静态服务器configuration来实现静态服务器:

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

但我想将URL http://myhost/url1到目录C:\dirA\dirBhttp://myhost/url2到目录C:\dirC

如何使用express.static来实现?

       

网上收集的解决方案 "我怎样才能实现与node.js的虚拟目录和expression?"

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

在Windows中:

 mklink /D c:\dirA\dirB public\url1 

在Linux或OSX中:

 ln -s /dirA/dirB public/url1 

那么你的静态资产服务器应该从这些目录透明地(我从来没有在Windows上testing,但我不明白为什么它不会工作)。

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

这应该为你工作:

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

看看app.use()的文档。