Как обслуживать файл stati c в зависимости от параметров req. в Express? - PullRequest
0 голосов
/ 03 августа 2020

Мне нужно вернуть один аудиофайл из нескольких с сервера и использовать его во внешнем интерфейсе. Я пробовал несколько способов отфильтровать один аудиофайл, используя express .stati c, но ни один из них, похоже, не работает.

Вот идея того, что я пытаюсь сделать:

app.get('/:songName', (req, res) => {
    app.use(express.static(__dirname + '/music/' + req.params.songName);
    ...
}

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Вы уверены, что используете правильные настройки express.static( ... )? Я имею в виду, что ваше объявление app.use находится внутри вашего метода обработчика запросов. Он должен быть снаружи:

app.use( middleware );
app.get( request_handler );

Кроме того, рекомендуется поместить все ваши stati c файлы в специальную папку и использовать его следующим образом:

app.use('/music', express.static(path.join(__dirname, 'music')));

Сделайте c здесь

0 голосов
/ 03 августа 2020

Вы должны использовать метод res.sendFile() для возврата аудиофайла. Предположим, у нас есть песня под запрошенным названием:

app.get('/:songName', (req, res) => {
    // sendFile argument should be an absolute path (Like yours):
    res.sendFile(__dirname + '/music/' + req.params.songName);
}
...