#node.js
#node.js
Вопрос:
Я использую фреймворк Ni (который, в свою очередь, использует Quip) для узла, внутри которого есть контроллер, называемый assets, с методами для изображений, файлов и т.д.
Метод images будет извлекать и отображать изображения при посещении domain.com/assets/images/imagename.png
Однако он отображает исходные данные для изображения, а не само изображение.
Я установил заголовки и тип контента. Код, который у меня есть, является:
var Ni = require('../lib/ni'),
mime = require('mime'),
fs = require("fs");
var AssetsController = function(){
this.images = function(req, res, next, fileName) {
var path = './assets/images/' fileName;
var image = fs.readFile(path, "binary", function(error, data){
if(error) throw error;
res.writeHead(200, {
'Content-Type' : mime.lookup(path),
'Content-Transfer-Encoding' : 'binary'
});
res.send(data);
});
}
}
module.exports = new AssetsController();
Ответ №1:
Я использую этот фрагмент кода при обслуживании изображений, и он отображает их правильно:
fs.readFile(path, function(err, data){
res.writeHead(200, {"Content-Type": "image/png"});
res.write(data, "binary");
res.end();
});
Комментарии:
1. У меня это не сработало из-за используемого мной фреймворка Ni, однако я решил проблему с помощью node-static