如何通过Node.JS传输输出的原始图像?

问题描述

| 例如;我在检查请求URL是否为\“ / favicon.ico \”。我想简单地输出该图像,而无需fs。当然,我需要相应地更改content-type标头,但是如何在不出现解析错误的情况下将实际图像插入JS文件? 我尝试过最简单的方法:在txt编辑器中打开图片,然后将内容粘贴到变量中。我认为将所有文件保存在内存中会很有效,因为它是一个简单的站点。     

解决方法

        您可以使用数据uri在源中包含图像。我对Node.JS的了解不足,无法告诉您如何以编程方式进行操作,但是由于您无论如何都将它们存储在变量中,因此将图像转换为数据uri并将其存储在vars中应该很容易。大多数现代浏览器(和IE8 +)都支持数据uri。如果您搜索\“ data uri generator \”,则应该在线上找到很多。 我个人喜欢Firefox的Base64编码器扩展。当我需要数据uri图像时,这是一种快速便捷的方法。 更新资料 经过更多研究后,您可以存储base64编码的字符串,然后将其加载到Buffer中,然后执行以下操作:
var image1 = new Buffer(\'iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAIAAACHqfpvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABlSURBVChTjVDJDQAgCGMuB2Iep3EZh0GEqiQekQ8htLSFmGKlXOW/yKCFicsvqeYE8IGsS5gBRk97dV9x2MjrruIsBdo09lCel03LteEFRt7kS3wlmZPRRQ6Zg3YHrxeMpzpAdw2MaCJX2CUsrAAAAABJRU5ErkJggg==\',\'base64\');
response.writeHead(200,{
    \'Content-Length\': image1.length,\'Content-Type\': \'image/png\'
});
response.end(image1);
看起来您甚至可以使用带有Buffer的\“ binary \”编码来复制粘贴的原始数据,但是已经弃用了,所以我会坚持使用更可靠的东西,例如base64。