如何接收和處理前端發送的數據?前端
這是後端API實現的基礎,當前端經過get或者post發送來的數據,express要如何接收git
返回解析過的請求參數對象,默認爲 {}
獲取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"
返回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"}
一樣,需使用 cookie-parser 中間件,json
// Cookie: name=xiaoming req.cookies.name // => "xiaoming"
好比 當route中有 /user/:name後端
// GET /user/xiaoming req.params.name // => "xiaoming"
以上均處理的是的文本形式的文件,那若是是二進制文件(multipart/form-data 類型的表單數據)那就須要用到另外一箇中間件multer了cookie
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