将文件类型从Angular 5 httpClient模块上传到NodeJS Express服务器时遇到问题。
这是我在Angular 5中所做的:
private updateExistingLoan(loan): Observable<any> {
const formData = new FormData();
if (loan.materials) {
loan.materials.forEach((material) => {
console.log('FILE', material);
if (material && material.file) {
formData.append('materialFile', material.file);
}
});
}
return this.httpClient.patch<any>(this.apiUrl + loan.id, formData, this.httpOptions);
}
我的httpOptions在哪里
private httpOptions = {
headers: new HttpHeaders({
'enctype': 'multipart/form-data', 'Cache-Control': 'no-cache', 'Pragma': 'no-cache'
})
};
在NodeJS Express服务器上,这是我要做的:
const Multer = require('multer');
router.patch('/:id', Multer().single("materialFile"), (req, res, next) => {
console.log(req.files);
console.log(req.body);
});
我在服务器上收到此错误:SyntaxError:JSON中的意外令牌#在JSON.parse()的位置0
我在前端收到此错误:HttpErrorResponse {headers:HttpHeaders,状态:400,statusText:“ Bad Request”,url:“ http://localhost:3000/api/loans/ ...”,确定:false,…} 错误
进一步调查 我将Content-Type指定为multipart / form-data,但是我的请求标头显示它是application / json。有人知道为什么吗?