繁体   English   中英

MEAN 堆栈 http.post 请求正文为空

[英]MEAN stack http.post request body is empty

我正在平均堆栈中创建一个项目,但遇到了以下问题。

当我尝试将某些内容上传到我的数据库时,由于请求正文为空,http.post 请求不起作用,因此我在 mongoose 中得到了一个 ValidationError 以获取它应该的所需参数,但没有得到。

所以首先我使用 service.ts ,我在其中提供从 html 文件中的表单获得的参数。 为此,我正在使用反应式表单和 FormData 对象。

 addProp(address: string, type: string, size: number, condition: string, year: number, numberOfRooms: number, moveableFrom: string, furnitured: boolean, garden: boolean, attic: boolean, pet: boolean, smoke: boolean, heatingType: string, elevator: boolean, level: number) { const propData = new FormData(); propData.append("address", address); propData.append("type", type); propData.append("condition", condition); propData.append("year", year as unknown as string); propData.append("numberOfRooms", numberOfRooms as unknown as string); propData.append("moveableFrom", moveableFrom); propData.append("furnitured", furnitured as unknown as string); propData.append("garden", garden as unknown as string); propData.append("attic", attic as unknown as string); propData.append("pet", pet as unknown as string); propData.append("smoke", smoke as unknown as string); propData.append("heatingType", heatingType as unknown as string); propData.append("size", size as unknown as string); propData.append("elevator", elevator as unknown as string); propData.append("level", level as unknown as string); this.http .post<{ message: string; prop: Property }>( "http://localhost:3000/api/props", propData ) .subscribe(responseData => { this.router.navigate(["/"]); }); }

然后它转到后端 properties.js 中的 post 请求

 router.post( "", req => { const prop = new Property({ address: req.body.address, type: req.body.type, size: req.body.size, condition: req.body.condition, year: req.body.year, moveableFrom: req.body.moveableFrom, numberOfRooms: req.body.numberOfRooms, furnitured: req.body.furnitured, elevator: req.body.elevator, level: req.body.level, garden: req.body.garden, attic: req.body.attic, pet: req.body.pet, smoke: req.body.smoke }); prop.save();.then(updatedProperty => { res.status(201).json({ message: "Property added successfully", prop: { ...updatedProperty, id: updatedProperty._id } }); }); } );

当我在此处 console.log req.body 时,我会得到一个空对象,但是当我在 service.ts 文件的前端 conole.log 它时它运行良好。

什么可能导致这个问题?

将数据作为 JSON 对象发布,而不是作为 FormData 对象发送。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM