Подавать статические файлы в динамическом маршруте с помощью Express

Я хочу использовать статические файлы, как это обычно делается с express.static(static_path), но в динамическом маршрут, как это обычно делается с помощью

app.get('/my/dynamic/:route', function(req, res){
    // serve stuff here
});

Решение намечено в этом comment одним из разработчиков, но мне не сразу понятно, что он имеет в виду.

Ответ 1

Хорошо. Я нашел пример в исходном коде для выражения "объекта ответа. Это немного измененная версия этого примера.

app.get('/user/:uid/files/*', function(req, res){
    var uid = req.params.uid,
        path = req.params[0] ? req.params[0] : 'index.html';
    res.sendfile(path, {root: './public'});
});

Он использует метод res.sendfile.

ПРИМЕЧАНИЕ: изменения безопасности на sendfile требуют использования параметра root.

Ответ 2

Я использую ниже код для обслуживания тех же статических файлов, которые запрашиваются разными URL-адресами:

server.use(express.static(__dirname + '/client/www'));
server.use('/en', express.static(__dirname + '/client/www'));
server.use('/zh', express.static(__dirname + '/client/www'));

Хотя это не ваше дело, это может помочь другим, кто попал сюда.