[英]error in getting the response, if nodejs server send response after some delay
我正在嘗試上傳圖像,然后nodeJS服務器將該圖像文件夾的路徑發送回作為響應。
但是當我在執行某些任務后發送響應時,在角度側沒有任何反應。
這是我的component.ts
文件。
uploadImage() {
const formData = new FormData();
formData.append('photo', this.image);
const obj$ = this.userService.uploadData(formData);
obj$.subscribe(data => {
console.log(data); //// nothing happening.
if (data.success) {
this.uploadForm.patchValue({
document: data.url
});
}
});
}
和我的service.ts
uploadData (uploadImage) {
return this.http.post<UploadPhoto>('/user/upload', uploadImage);
}
和我的app.js
router.post('/upload' ,upload.single('photo'), (req,res) => {
console.log(req.file);
const body = req.file;
cloudinary.uploader.upload(body.path, (err, result) => {
if (err) {
console.log(err);
return;
}
console.log(result);
res.status(200).json({
url: result.url,
success: true
});
});
});
但是當我發送響應而不執行任何任務時,它的工作原理就像
router.post('/upload' ,upload.single('photo'), (req,res) => {
console.log(req.file);
const body = req.file;
res.status(200).json({
url: 'hello',
success: true
})
});
我不知道為什么會這樣。
請有人幫我。
當您的上傳器中發生錯誤時,您會將錯誤返回到控制台,然后結束執行。 如果異步方法中有錯誤,則必須將其傳遞給next()
函數,以便express可以處理它。
router.post('/upload' ,upload.single('photo'), (req,res, next) => {
console.log(req.file);
const body = req.file;
cloudinary.uploader.upload(body.path, (err, result) => {
if (err) {
console.log(err);
next(err);
}
else {
console.log(result);
res.status(200).json({ url: result.url, success: true });
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.