writeStream的NodeJS空文件(NodeJS writeStream empty fil

2019-08-02 15:08发布

我想使用的NodeJS保存存储在一个base64字符串的处理图像。

var buff = new Buffer(base64data,'base64');
console.log(base64data);

var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff)
stream.end()

然而,生成的文件是空的。

当我采取的输出console.log(base64data); 并在本地解码它,它会产生一个有效的PNG二进制,那么为什么该文件是空的?

该文件是3600x4800像素png文件(即它是巨大的),这可能是一个因素?

另外,我想writeFile为好,没有运气。

是的, fsrequire('fs')

谢谢

Answer 1:

您stream.end()得一声什么也没写。 它是异步函数记住。

var buff = new Buffer(base64data,'base64');
console.log(base64data);

var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff);
stream.on("end", function() {
  stream.end();
});


Answer 2:

更好:

var buff = new Buffer(base64data,'base64');
console.log(base64data);

var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff);
stream.end();
stream.on('finish', () => {
     //'All writes are now complete.'
});
stream.on('error', (error) => {...});


文章来源: NodeJS writeStream empty file