Как я могу реализовать виртуальные каталоги с помощью node.js и Express?
Я хочу использовать экспресс-статическую конфигурацию сервера для реализации статического сервера:
app.configure(function() {
app.use(express.static(__dirname + '/public'));
});
Но я хочу сопоставить URL http://myhost/url1
в каталог C:\dirA\dirB
а также http://myhost/url2
в каталог C:\dirC
Как это можно реализовать с помощью express.static?
2 ответа
В зависимости от того, сколько каталогов вы планируете отображать таким образом, вы можете просто создать символические ссылки для этих каталогов в своем public
папка.
В Windows:
mklink /D c:\dirA\dirB public\url1
В Linux или OSX:
ln -s /dirA/dirB public/url1
Тогда ваш сервер статических ресурсов должен прозрачно обслуживать эти каталоги (я никогда не тестировал на Windows, но не понимаю, почему он не будет работать).
В качестве альтернативы, если вы хотите включить какую-то динамическую маршрутизацию, вы можете написать собственное промежуточное программное обеспечение для замены 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 ().