Angular 5 formData httpClient补丁,Nodejs Express multer文件上传错误

时间:2018-07-07 12:47:39

标签: node.js express angular5 multer angular-httpclient

将文件类型从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。有人知道为什么吗?

0 个答案:

没有答案