Я пытаюсь сохранить удаленный файл изображения в базу данных, но у меня возникают некоторые проблемы с ним, так как я никогда не делал этого раньше.Сохранить файл изображения в базе данных с узлом/request/sequelize/mysql
Мне нужно загрузить изображение и передать его (с помощью узла) с несколькими другими свойствами другому узлу api, который сохранит его в базе данных mysql (используя сиквел). Мне удалось получить некоторые данные для сохранения, но когда я загружаю его вручную и пытаюсь открыть его, он не очень полезен, и изображение не появляется.
Я пробовал несколько вещей: получить изображение с помощью node-request, преобразовать его в строку base64 (прочитать об этом где-нибудь) и передать его в полезной нагрузке json, но это не сработало. Пробовал отправлять его как многочастный, но это тоже не сработало. Не работали с потоками/буферами/multipart все, что было раньше и никогда не было в узле. Я пробовал смотреть на узлы-запросы, но я не мог понять, как можно применить их к этому контексту.
Вот что я в настоящее время (это класс части ES6 так что нет «функции» ключевых слов, а также, запрос promisified):
function getImageData(imageUrl) {
return request({
url: imageUrl,
encoding: null,
json: false
});
}
function createEntry(entry) {
return getImageData(entry.image)
.then((imageData) => {
entry.image_src = imageData.toString('base64');
var requestObject = {
url: 'http://localhost:3000/api/entry',
method: 'post',
json: false,
formData: entry
};
return request(requestObject);
});
}
Я почти 100% уверен, что проблема в этой части потому что api просто берет то, что получает, и дает ему сиквелизировать, чтобы положить в таблицу, но я мог ошибаться. Поле изображения задано как longblob.
Я уверен, что это просто, как только я выясню это, но до сих пор я в тупике.