如何接收和处理前端发送的数据?前端
这是后端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