У меня есть файл .png в папке проекта моего узла, и я хочу прочитать этот файл и отправить его на удаленный API REST, который принимает формат данных формы и возвращает URL-адрес изображения после его загрузки в S3.
Ранее я использовал тот же API для загрузки изображений в интерфейс, используя JavaScript. В моем приложении JS я использовал файл типа ввода для загрузки изображения, которое давало мне изображение в формате файла, а затем я передавал его в API после добавления этого файла в объект formData, например:
let formData = new FormData();
formData.append("content_file", file)
но когда я пытаюсь сделать то же самое в node.js, я не могу прочитать этот файл в формате файла, из-за чего Api не принимает тело запроса. Я новичок в node js, я даже не уверен, что читаю файл правильно или нет. Пожалуйста, помогите!
var express = require('express');
var fs = require('fs');
var path = require('path');
var Request = require("request");
var FormData = require('form-data');
var app = express();
// for reading image from local
app.get('/convertHtml2image1', function (req, res) {
fs.readFile(`image_path`, (err, data) => {
if (err) res.status(500).send(err);
let extensionName = path.extname(`banner.png`);
let base64Image = new Buffer(data, 'binary').toString('base64');
let imgSrcString = `data:image/${extensionName.split('.').pop()};base64,${base64Image}`;
// for converting it to formData
let formData = new FormData();
formData.append("content_file", data)
// for calling remote REST API
Request.post({
"headers": { "token": "my_token" },
"url": "api_url",
"body": formData
}, (error, response, body) => {
if (error) {
return console.log(error);
}
let result = JSON.parse(body)
res.send("image_url: " + result.url)
});
})
})
app.listen(5000);