원격 이미지 파일을 데이터베이스에 저장하려고하는데, 전에 한 번도 해 본 적이 없기 때문에 몇 가지 문제가 있습니다.node/request/sequelize/mysql을 사용하여 이미지 파일을 데이터베이스에 저장하십시오.
이미지를 다운로드하고 몇 가지 다른 속성이있는 이미지를 다운로드하여 다른 노드 api에 전달하여 (sequelize 사용) mysql 데이터베이스에 저장해야합니다. 나는 저장할 데이터를 얻을 수 있었지만, 수동으로 다운로드하여 열려고하면 실제로 사용할 수없고 이미지가 표시되지 않습니다.
저는 노드 요청으로 이미지를 가져 와서 base64 문자열로 변환하고 (어딘가에 대해 읽음) json 페이로드에 따라 전달했지만 작동하지 않았습니다. 멀티 파트로 보내려고했지만 그 중 하나도 작동하지 않았습니다. 스트림/버퍼/멀티 파트로 작업 한 적이 없으며 이전에는 결코 노드에 없었습니다. 노드 요청 파이프를 조사해 보았습니다. 그러나이 컨텍스트에 어떻게 적용 할 수 있는지 실제로 파악할 수 없었습니다. 여기
내가 현재 가지고있는의 (가 그래서는 일부의 ES6 클래스의 어떤 '기능'키워드 없습니다 또한, 요청이 promisified됩니다) : 나는 문제가이 부분에 거의 100 % 확신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);
});
}
왜냐하면 API가 가져온 것을 가져 와서 테이블에 넣기 위해 후속편으로 제공하기 때문에,하지만 잘못 될 수 있습니다. 이미지 필드는 longblob로 설정됩니다.
내가 알아 내면 간단 할 것이라고 확신하지만, 지금까지 나는 혼란 스럽다.