Node.js 在angular+;nodejs
当我想通过http.post将一些数据从angular客户端传递到node.js服务器时,我遇到了一个问题 问题是,使用JSON.stringify(我的文本)传递文本效果很好,但是考虑到我希望传递一个文件+我的文本,我希望使用formData 当我试图在服务器端取回数据时,我的req.body是空的,我无法检索数据 这是我的客户端代码:Node.js 在angular+;nodejs,node.js,angular,http-post,Node.js,Angular,Http Post,当我想通过http.post将一些数据从angular客户端传递到node.js服务器时,我遇到了一个问题 问题是,使用JSON.stringify(我的文本)传递文本效果很好,但是考虑到我希望传递一个文件+我的文本,我希望使用formData 当我试图在服务器端取回数据时,我的req.body是空的,我无法检索数据 这是我的客户端代码: [...] var formData = new FormData(); formData.append('name', product.na
[...]
var formData = new FormData();
formData.append('name', product.name);
formData.append('benefits_detail', product.benefits_detail);
formData.append('sections', product.sections);
formData.append('image', product.image); // image is my file
return this.http.post('http://localhost:3000/product', formData, {headers: headers}).map(........)
然后是我的服务器,在那里我试图取回我的数据:
router.post('/', function (req, res, next) {
console.log('req.body');
console.log(req.body);
console.log(req.body.formData);
...
这里console.log为空,如图所示:{}
有人能帮忙吗
谢谢您看起来您没有使用任何正文解析中间件,这是必需的 从 包含请求正文中提交的数据的键值对。默认情况下,它是未定义的,并且在使用主体解析中间件(如主体解析器和multer)时填充
尝试使用将图像上载到服务器,您可以尝试使用该指令。它有一个指令来选择HTML格式的文件,然后将文件上传到服务器。如果您已经选择了图像,我相信您可以使用JS中的上载部分发送图像(如果没有HTML中的文件选择器,您从未尝试过使用上载,但它应该可以工作) 但是,此解决方案需要发送两个请求,一个请求数据,另一个请求图像