如何使用formdata创建邮政服务?
我通过Axios发送了formdata。 但是,节点表达服务器上的“ req.body.title”值是空的。 因此,现在我以以下格式发送抓取。 但是我需要将文件上传到服务器,所以我想使用formData发送它。
let bodys = 'title=a1&contents=b'
fetch("http://localhost:5000/test", {
method : 'post',
headers : {
'Content-type' : 'application/x-www-form-urlencoded; charset=UTF-8'
},
body: bodys
})
.then(function(response){
console.log('Request Succeded ', response);
})
.catch(function (error){
console.log('Failed ', error)
})
我使用带有新FormData()的append编写了新数据, 我检查了FormData是否包含React的值。 但是,node-express服务器没有进入主体。
请让我知道该怎么办...
答案 0 :(得分:1)
尝试发送FormData对象而不是原始字符串作为请求正文。
const bodys = new FormData();
bodys.append('title', 'a1');
bodys.append('contents', 'b');
此表格数据将在express.js服务器中的request.body中提供。
编辑:要解析express.js中的FormData,您需要像multer
这样的中间件。const upload = require('multer');
app.use('/', upload.any(), yourRouteHandler);
答案 1 :(得分:0)
您只发送了一个字符串,所以
您可以像下面那样进入身体
let bodys = 'title=a1&contents=b'
console.log(req.body); //will print title and contents as you are sending
如果要分别访问标题和内容,则必须将数据作为对象发送
const bodys = {“title”: “a1”, “contents”: “b”}
console.log(“title”, req.body.title); //will print a1
console.log(“contents”, req.body.contents); //will print b
选择此线程以获取更多详细信息https://github.com/github/fetch/issues/263