學習 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())