Express獲取上傳參數

如何接收和處理前端發送的數據?前端

這是後端API實現的基礎,當前端經過get或者post發送來的數據,express要如何接收git

req.query 解析get參數

返回解析過的請求參數對象,默認爲 {}
獲取get方法發送過來的參數
來個栗子:github

// GET /search?name=xiaoming
req.query.name
// => "xiaoming"
// GET /shoes?order=desc&shoe[color]=blue&shoe[type]=converse
req.query.order
// => "desc"
req.query.shoe.color
// => "blue"
req.query.shoe.type
// => "converse"

req.body 解析post參數

返回post解析過的參數對象,默認爲 undefined 解析須要引入 body-parser 中間件。express

const app = require('express')()
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))  // parse application/x-www-form-urlencoded
app.use(bodyParser.json())  // parse application/json

app.post('/info', function (req, res){
  if (req.body) {
    db.saveInfo(req.body)
  }
})

// POST /info {name: "xiaoming",pass: "passwd"}
req.body
// => {name: "xiaoming",pass: "passwd"}

req.cookies 解析發送的cookies

一樣,需使用 cookie-parser 中間件,json

// Cookie: name=xiaoming
req.cookies.name
// => "xiaoming"

req.params 解析請求中 包含在route中的參數

好比 當route中有 /user/:name後端

// GET /user/xiaoming
req.params.name
// => "xiaoming"

以上均處理的是的文本形式的文件,那若是是二進制文件(multipart/form-data 類型的表單數據)那就須要用到另外一箇中間件multercookie

multer 處理文件上傳

var express = require('express')
var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

var app = express()

app.post('/profile', upload.single('avatar'), function (req, res, next) {
  // req.file 是 `avatar` 文件的信息
  // req.body 將具備文本域數據, 若是存在的話
}

參考代碼app

相關文章
相關標籤/搜索