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