使用角度5节点和Multer
我正在尝试上载文件,因此首先我尝试将文件获取到某个目录,然后必须将该路径插入数据库,
所以首先我创建了表单
<input type="file" (change)="onFileSelected($event)">
<button type="button" (click)="onUpload()">Upload</button>
在那之后,我在我的。ts文件
onFileSelected(event){
this.selectedFile = event.target.files[0];
}
onUpload(){
var fd = new FormData();
fd.append('productImage', this.selectedFile, this.selectedFile.name);
this.httpClient.post('http://localhost:3000/uploadImage/1', fd )
.subscribe(res => {
console.log(res);
});
}
我的节点rest调用如下
app.post('/uploadImage/:id', upload.single("productImage") ,(request, result) => {
result.send(request.file);
result.send(request.params.id);
result.send("Done");
});
我感到困惑的部分是,因为我正在节点端设置标头,如何将其从前端删除,以避免出现以下错误,即发送标头时无法设置标头
Error: Can't set headers after they are sent.
at validateHeader (_http_outgoing.js:494:11)
at ServerResponse.setHeader (_http_outgoing.js:501:3)
at ServerResponse.header (D:\Projects\Craiglist\api\node_modules\express\lib\response.js:767:10)
at ServerResponse.contentType (D:\Projects\Craiglist\api\node_modules\express\lib\response.js:595:15)
at ServerResponse.send (D:\Projects\Craiglist\api\node_modules\express\lib\response.js:145:14)
at app.post (D:\Projects\Craiglist\api\index.js:41:12)
at Layer.handle [as handle_request] (D:\Projects\Craiglist\api\node_modules\express\lib\router\layer.js:95:5)
at next (D:\Projects\Craiglist\api\node_modules\express\lib\router\route.js:137:13)
at Array.<anonymous> (D:\Projects\Craiglist\api\node_modules\multer\lib\make-middleware.js:53:37)
at listener (D:\Projects\Craiglist\api\node_modules\on-finished\index.js:169:15)