Подтвердить что ты не робот

Node.JS - Кодирование изображений в base64 с использованием буфера

Я пытаюсь закодировать изображение, используя base64 в Node.JS, чтобы перейти к API PostageApp в качестве вложения. Я думал, что он работает, но придает файл 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, но я думал, что это сработает. Любая помощь будет оценена!

4b9b3361

Ответ 1

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

Требуется некоторое время, пока результаты не будут найдены, поэтому к тому времени, когда у вас есть данные, выполнение внешних объектов уже завершено.

Ответ 2

Просто укажите "base64" в качестве кодировки. В документах:

Если кодировка не указана, возвращается исходный буфер.

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