Buffer问题,请问这个代码哪里有问题?为什么读取的不是Buffer对象?
发布于 8 年前 作者 microzz 3958 次浏览 来自 问答

logo.jpg是同文件夹下的一张图片 var fs = require(‘fs’) fs.readFile(‘logo.jpg’, function(err, origin_buffer) { console.log('isBuffer: ’ + Buffer.isBuffer(origin_buffer)) fs.writeFile(‘logo_buffer.jpg’, origin_buffer, function(err) { if (err) console.log(err) })

var base64Image = origin_buffer.toString('base64');
console.log(base64Image)

var decodedImage = new Buffer(base64Image, 'base64')
console.log(Buffer.compare(origin_buffer, decodedImage))

fs.writeFile('logo_decoded.jpg', decodedImage, function(err) {
	if (err) console.log(err)
})

}) QQ截图20161006124051.pngQQ截图20161006124355.png

3 回复

你应该判断一下err


fs.readFile('./logo.png',function (err,data) {
   if (err)return console.info(err);
    console.info(data);
});

The callback is passed two arguments (err, data), where data is the contents of the file. If no encoding is specified, then the raw buffer is returned. 回调传递两个参数,data是文件的内容,如果没有指定编码返回的是buffer

感谢,根据错误提示已经解决,我用的相对路径,在命令行里面要cd到该目录运行,感谢

回到顶部