获取url 参数
epresssjs 里面请求参数,4.x 里面有3种方法
1.req.params
app.get('user/:id',function(req,res){ res.send('user',req.params.id); })
也就是取带冒号的参数
2.req.body
包含在请求正文中提交的数值键对,默认情况下 值为undefind ,当你用body-parse 等插件的来解析
var app=require('express')(); var bodyParser=reqyuire('body-parser'); var multer=require('multer'); app.use(bodyParser.json());//for parsing application/json app.use(bodyParser.urlencoded({extented:true});//for parsing application/x-www-form-urlencoded app.use(multer()(;//for parsing imultipart/for-data app.post('/',function(req,res){ console.log(req.body); res.json(req.body); })
req.body 一定是post请求,express 里依赖的中间件必须有bodyParser,不然req.body 是没有的,
3.req.query
说明:req.query 不一定是get
get //get /search?q=tobi+ferret req.query.q =>'tobi ferret' //get /shoes?order=desc&show[color]=blue&shoe[type]=converse req.query.order =>desc req.query.shoe.color =>blue req.query.shoe.type =>converse post //post /search?q=tobi+ferret {a:1,b:2} req.query.q =>'tobi ferret'
post 里看不到的,用req.body取
3个例子:
1、例如:127.0.0.1:3000/index,这种情况下,我们为了得到index,我们可以通过使用req.params得到,通过这种方法我们就可以很好的处理Node中的路由处理问题,同时利用这点可以非常方便的实现MVC模式;
2、例如:127.0.0.1:3000/index?id=12,这种情况下,这种方式是获取客户端get方式传递过来的值,通过使用req.query.id就可以获得,类似于PHP的get方法;
3、例如:127.0.0.1:300/index,然后post了一个id=2的值,这种方式是获取客户端post过来的数据,可以通过req.body.id获取,类似于PHP的post方法;