学习 nodejs,获取url post传回的参数时,会发生和我同样的问题,今天就来解决这个小麻烦php
node.js不像php这种老牌后端语言有特定的获取外部参数的作法,毕竟是个新生力量,但愿后来的版本可以更加便捷高效node
//正常的获取值 app.get('/', (req, res) => { console.log(req.query); res.send('完成'); }); app.post('/', (req, res) => { console.log(req.body); res.send('完成'); });
正常输出的话,你的预想是这样的...express
// GET请求 { name: '冯小贤', age: '18' } 完成
或npm
// POST请求 { name: '冯小贤', age: '18' } 完成
// 两次的输出会是这样!!! { } undefined
这是由于咱们这里缺乏一个模块,express的中间件 body-parserjson
官方说明
Node.js body parsing middleware.
Parse incoming request bodies in a middleware before your handlers, available under the req.body property.后端
基本就是说,解析客户端请求的body中的内容,JSON编码处理和url编码处理app
接下来咱们就来安装 body-parseride
// 安装 body-parser npm install body-parser
// 导入 app.js var bodyParser = require('body-parser'); app.use(bodyParser()); //这样就能够使用 req.body 来获取 post 传递来的值了 app.post('/', (req, res) => { console.log(req.body); res.send('完成'); }); // json就是用 app.use(bodyParser.json())