2015-10-24 2 views
0

Используя среду MEAN, я возвращаю изображения клиенту по запросу. Пример:Node.js: sendfile для неизвестного типа файла

res.sendfile("./pathtoimage/someImage.jpg"); 

Моей проблема: путь к изображению (а также имя изображения) вычисляется во время выполнения, после конкретной схемы, так что я знаю, путь и имя фактического изображения. То, что я не знаю, это тип файла изображения, поэтому отсутствует расширение файла (например, .jpg, .gif, .png). Вместо того, чтобы проверить, существует ли файл в любой одной версии, могу ли я вместо того, чтобы написать что-то вроде этого:

res.sendfile("./pathtoimage/someImage.*"); 

Вернись, что файл с любым расширением вы можете найти, вместо того, чтобы вручную проверить, если определенная версия этого файла существует ? Любые другие предложения? В противном случае я бы пошел и последовательно попытался получить доступ ко всем вариациям, пока не найду правильную комбинацию и не верну ее. Мне просто интересно, есть ли более быстрый и элегантный способ сделать это.

ответ

0

Я думаю, вы останетесь наедине с fs.exists.

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

nginx имеет try_files директиву, которая может быть использована для этой цели:

try_files $uri.jpg $uri.gif $uri.png $uri/ =404 
+0

Hm ОК. Я думаю, что я мог бы просто использовать коллекцию Promise, такую ​​как any(), чтобы проверять все варианты одновременно, а затем перейти к существующему файлу. Благодаря! –

Смежные вопросы