Как я могу реализовать виртуальные каталоги с помощью node.js и Express?

Я хочу использовать экспресс-статическую конфигурацию сервера для реализации статического сервера:

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

Но я хочу сопоставить URLhttp://myhost/url1 в каталогC:\dirA\dirB а такжеhttp://myhost/url2 в каталогC:\dirC

Как это можно реализовать с помощью express.static?

Ответы на вопрос(2)

Это должно работать для вас:

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

Посмотрите на документацию дляapp.use ().

 16 июн. 2017 г., 09:20
Это гораздо более простой и эффективный ответ, чем принятый.
Решение Вопроса

В зависимости от того, сколько каталогов вы планируете отображать таким образом, вы можете просто создать символические ссылки для этих каталогов в своемpublic папка.

В Windows:

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

В Linux или OSX:

ln -s /dirA/dirB public/url1

Тогда ваш сервер статических ресурсов должен прозрачно обслуживать эти каталоги (я никогда не тестировал в Windows, но я не понимаю, почему он не будет работать).

В качестве альтернативы, если вы хотите включить некоторую динамическую маршрутизацию, вы можете написать собственное промежуточное программное обеспечение для заменыexpress.static что на самом делеconnect.static под капотом. Взгляни наstatic.js вподключить источник и посмотрите, как это реализовано, написать свой вариант будет довольно просто.

Ваш ответ на вопрос