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, но я думал, что это сработает. Любая помощь будет оценена!
Ответы
Ответ 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]
});