Node.JS – 使用Buffer在base64中对图像进行编码

我试图在Node.JS中使用base64编码图像作为附件传递给PostageApp API。 我以为我有它的工作,但它附加一个1K文件,这不正是我所期待的。

这是我的代码:

var base64data; fs.readFile(attachment, function(err, data) { base64data = new Buffer(data).toString('base64'); }); 

以下是我正在进行的API调用的一部分:

  attachments: { "attachment.txt" : { content_type: "application/octet-stream", content: base64data }, } 

我有点迷路,不像Node那么棒,但是我认为它会起作用。 任何帮助,将不胜感激!

 fs.readFile(attachment, function(err, data) { var base64data = new Buffer(data).toString('base64'); [your API call here] }); 

需要一段时间才能得到结果,所以等到数据获得的时候,外层的执行已经结束了。

只需指定“base64”作为编码。 根据文档 :

如果没有指定编码,则返回原始缓冲区。

 fs.readFile(attachment, {encoding: 'base64'}, function(err, base64data) { [your API call here] });