nodejs server,写出png到响应页面

时间:2014-04-16 19:56:28

标签: javascript node.js png

我正在使用node-png库来创建png,然后将其保存在本地目录中,但是当我打开它时,它表示它不存在。我想要读取数据并将其发送出去,或者让响应发送带有图片的<img>字段。这是我到目前为止所做的:

//write out img data
png.pack().pipe(dst);

//link to new image made
var link = fs.createReadStream('out.png'); //says that this does not exist

//write out response with img then delete file
response.writeHead(200, {"Content-Type": "image/png"});
response.end(link, 'binary');

1 个答案:

答案 0 :(得分:2)

难道你不能完全跳过写入文件吗?

var output = png.pack();
res.setHeader('Content-Type', 'image/png');
output.pipe(res);

如果您确实需要同时将其写入磁盘,请参阅以下答案:

https://stackoverflow.com/a/19561718/944006

如果你需要先写入磁盘,然后从那里读取,你可以这样做:

var output = png.pack();
output.pipe(dst, { end: false });
output.on('end', function(){
     //Read your file and set your response here.
}

我没有测试任何这些,但这是管道工作的一般方式。