express中无法在axios.post请求中通过req.body获取请求传递的数据的解决办法

在学习node.js并使用Express构建服务器时,遇到无法从req.body获取POST请求数据的问题。原本req.body返回为空对象,发现需要解析POST参数。由于body-parser已弃用,直接使用Express内置功能解析。前端使用axios.post发送请求,服务器端通过req.body获取参数失败,显示奇怪的body格式。最终通过调整服务器路由和前端请求方式,改为使用req.query获取参数,问题得到解决。
摘要由CSDN通过智能技术生成

关于用express搭建服务器不能从req.body里获取数据的问题解析

最开始的情况,根本不能通过req.body拿出数据,req.body返回的是一个空对象,
经过多次上网搜索,才发现需要在express中引入bodyParser这个插件
bodyparser有4种常用的解析方式,对应数据格式可以在官网上看文档,本人前端小白只能谈谈自己的理解和解决的办法

const express = require('express');
var bodyParser=require('body-parser');
app.use(bodyParser.urlencoded({
   extended:true}));

之后才能用req.body中拿出数据

但后续情况出现

服务器定义路由

app.post("/login",(req,res)=>{
   
	console.log("这是query",req.query);
    console.log("这是body",req.body);})

客户端发请求的代码为

      login(){
   
            this.$axios({
   
                method:'post',
                headers: {
   'Content-Type': 'application/x-www-form-urlencoded'}, 
                url:"http://localhost:8000/login",
                // 只有params是可以传递参数的
                data:this.loginForm
            }).then(res=>{
   
                console.log(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值