Nodejs express獲取POST參數值

學習 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())
相關文章
相關標籤/搜索