2011-05-12 77 views
2

我使用镍框架(又使用妙语)为节点,其内有一个控制器称为资产,具有用于图像,文件等的方法图像服务器

当您访问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

这并不适合我,因为镍框架that'I”的工作m使用,但是我解决了问题使用节点静态 – manicleek 2011-05-13 15:11:46