在 node.js 的 Express 模块中,封装了四种获取客户端参数的方法
req.query — req.body — req.params — req.param
- req.query
node.js提供,无需加载中间件即可使用
//get---/index?name=threen&age=18
req.name
//=>threen
//get---/index?name=threen&person[eyescolor]=black&person[head]=big
req.person.head
//=>big
官方文档:
An object containing a property for each query string parameter in the route.
If there is no query string, it is the empty object, {}.
这是一个包含路由中每个查询字符串属性的对象,如果没有,默认为{}
由上可见,req.query 大多用来解析和获取get请求
- req.body
此处则需要引入 body-parser 第三方模块才能使用
var express=require("express);
//加载
var bodyParser=require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended:true}));
Contains key-value pairs of data submitted in the request body. By
default, it is undefined, and is populated when you use body-parsing
middleware such as body-parser and multer.它包含了请求体中的提交数据,格式是键值对,默认是underfined,
你可以用body-parser或者multer来解析body
由上,req.body大多数用来解析 post 数据,可通过 req.body.xxx 获取属性的值
- req.params
//对应 url --- localhost:3000/threen
app.get('/:name')
req.params["name"];
//threen
就是把请求 / 后面的参数当成name,通过req.params就能获取到name—threen
第四种已被弃用