1.req.body
此方法通常解析post 请求中的数据,因此需要使用body-parser中间件才可以使用此方法;
栗子:
1 var app = require('express')(); 2 var bodyParser = require('body-parser'); 3 var multer = require('multer'); // v1.0.5 4 var upload = multer(); // for parsing multipart/form-data 5 6 app.use(bodyParser.json()); // for parsing application/json 7 app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded 8 9 app.post('/profile', upload.array(), function (req, res, next) { 10 console.log(req.body); 11 res.json(req.body); 12 });
2.req.query
此方法多适用于GET请求,解析GET里的参数,无需中间件
栗子:
1 // GET /search?q=tobi+ferret 2 req.query.q 3 // => "tobi ferret" 4 5 // GET /shoes?order=desc&shoe[color]=blue&shoe[type]=converse 6 req.query.order 7 // => "desc" 8 9 req.query.shoe.color 10 // => "blue" 11 12 req.query.shoe.type 13 // => "converse"
3.req.params
无需中间件
栗子:
1 // GET /user/tj 2 req.params.name 3 // => "tj"
// GET /file/javascripts/jquery.js req.params[0] // => "javascripts/jquery.js"
req.query与req.params的区别:
req.params包含路由参数(在URL的路径部分),而req.query包含URL的查询参数。