环境
Node.js Express框架
问题描述
当测试post请求传入参数时,获取的值为undifined
代码语言:javascript复制//登录处理函数
exports.login=(req,res)=>{
const mydata= req.body;
console.log(mydata);
res.send('login successed!')
}
postman发送参数
控制台打印结果
原因:未配置body参数解析器
解决方法
在主文件当中 app.js
代码语言:javascript复制app.use(express.urlencoded({ extended: false }))
利用express提供的方法进行body解析
问题二
使用以上方法,仍却获得的参数为undefined 那么很有可能的原因是
代码语言:javascript复制app.use(express.urlencoded({ extended: false }))
这句放在的路由之后
由于js是单线程,将会从上到下执行,所以当解析到路由器时,还没有执行解析body,自然而然的就获得的数据为undefined
所以将解析中间件放到路由之前
代码语言:javascript复制//引用route
const loginrouter =require('./route/login')
// 配置body解析器
app.use(express.urlencoded({ extended: false }))
采用以上顺序将会解决问题。亲测有效