Node.js: раздача бинарных файлов
Очень часто с веб-сервера требуется отправить браузеру картинку с динамически заданными характеристиками. Пример — аватарка пользователя, в случае отсутствия которой выдается картинка с серым силуэтом. Вот как это можно сделать:
Здесь getPath() — абстрактная функция, возвращающая путь до файла-картинки. Ее можно конкретизировать в зависимости от ситуации.
app.get('/getAvatar', function (req, res) {
var uid = req.query.uid;
['jpeg', 'png', 'gif'].forEach(function(item){
var fn = getPath(uid, item);
if(fs.existsSync(fn)){
var img = fs.readFileSync(fn);
res.writeHead('200', {'Content-Type': 'image/' + item});
res.end(img, 'binary');
return;
}
});
res.writeHead('200', {'Content-Type': 'image/png'});
var img = fs.readFileSync('/path/to/nobody.png');
res.end(img, 'binary');
});
function getPath(uid, ext){
// TODO ...
return hz;
}
Здесь getPath() — абстрактная функция, возвращающая путь до файла-картинки. Ее можно конкретизировать в зависимости от ситуации.
- —
- 12 декабря 2012, 22:47

Комментарии (0)
RSS свернуть / развернутьТолько зарегистрированные и авторизованные пользователи могут оставлять комментарии.