Я пытаюсь загрузить изображение в firebase firestore, но перед этим мне нужно изменить размер изображения с помощью облачных функций.
Ниже приведен код, который я пробовал:
component.html
<input type="file" name="image" (change)="handleFileInput($event.target.files)">
Файл component.ts
handleFileInput(files: FileList){
console.log("uploaded files.......", typeof files.item(0));
let postData = new FormData();
postData.append("image", files.item(0));
console.log('postData.................', postData);
this.http.post('https://[.....]/app/resize', postData).subscribe(data => {
console.log(".........", data);
});
}
А вот моя функция облака :
const upload = multer.diskStorage({
destination: (req, file, cb) => {
console.log('upload called...............................');
const isValid = MIME_TYPE_MAP[file.mimetype];
let error = new Error("Invalid mime type");
if (isValid) {
error = null;
}
cb(error, "../tmp/");
},
filename: (req, file, cb) => {
console.log('something is here........', file);
const name = file.originalname
.toLowerCase()
.split(" ")
.join("-");
const ext = MIME_TYPE_MAP[file.mimetype];
cb(null, name + "-" + Date.now() + "." + ext);
});
app.post('/resize', multer({ storage: upload }).single("image"), (req, res) => {
cors(req, res, () => { });
res.set('Access-Control-Allow-Origin', "*");
res.set('Access-Control-Allow-Methods', 'GET, POST');
console.log("##", req.body);
console.log("##", req.file);
}
Я получаю req.body as empty object {} and req.file as undefined
?
Я не могу отладить его, чтобы понять, связана ли проблема с угловой стороной или со стороны экспресс-узла в firebase.
postData - это formData, и его содержимое не отображается в консоли браузера.
Не могли бы вы мне помочь решить эту проблему?