NodeJS writeStream空文件

Dou*_*oug 8 filesystems png node.js

我正在尝试使用nodeJS来保存存储在base64字符串中的已处理图像.

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

var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff)
stream.end()
Run Code Online (Sandbox Code Playgroud)

但是,生成的文件为空.

当我在console.log(base64data);本地获取输出并对其进行解码时,它会生成一个有效的png二进制文件,那么为什么文件为空?

该文件是一个3600x4800 px png文件(即它很大),这可能是一个因素吗?

此外,我也尝试writeFile过,没有运气.

是的,fs是的require('fs')

谢谢

way*_*yne 10

你的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();
});
Run Code Online (Sandbox Code Playgroud)


小智 5

更好的:

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) => {...});
Run Code Online (Sandbox Code Playgroud)

  • 您能否提供有关您添加的行的一些详细信息? (2认同)