web-dev-qa-db-ja.com

Node.JS-バッファを使用して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があまり上手ではありませんが、うまくいくと思いました。何か助けていただければ幸いです!

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

結果が表示されるまでには時間がかかるため、データを取得するまでに、外側のスコープの実行はすでに終了しています。

36
thejh

エンコーディングとして「base64」を指定するだけです。 ドキュメントごと

エンコーディングが指定されていない場合、生のバッファが返されます。

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