express框架Request对象获得参数方法:query和body方法
-
req.query
该属性用法很简单,直接获取地址栏传递的参数;例如://引入依赖 var express = require('express'); /*var utility = require('utility');*/ //建立express的实例,相当于创建了http服务器 var app = express(); // 地址栏: localhost:3000/search?q=tobi+ferret app.get('/search', function(req, res){ //从req.query中取出我们的q参数 //如果是post传来的body数据,则是在req.body里面,不过express默认 //不处理body中的信息,需要引入https://github.com/expressjs/body-parser /*var q = req.query.q; var md5value = utility.md5(q); res.send(md5value);*/ var param = req.query.q; res.send(param); }); //// 地址栏: localhost:3000/shoes?order=desc&shoe[color]=blue&shoe[type]=converse /*app.get('/shoes', function(req, res){ var order = req.query.order; var color = req.query.shoe.color; var type = req.query.shoe.type; console.log(order); console.log(color); console.log(type); res.send('hello world'); });*/ app.listen(3000,function(req,res){ console.log('app is run at port 3000'); });
-
req.body
该属性主要用于post方法时传递参数使用,用法最广泛,注意,在使用这个属性时,得先确认有没有导入‘body-parser’,该模块在express4.x中已经脱离为独立的模块。var app = require('express')(); var bodyParser = require('body-parser'); var multer = require('multer'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(multer()); app.post('/', function (req, res) { console.log(req.body); res.json(req.body); })
-
jquery ajax传递参数到后台
var id= '12345'; $.ajax({ type: 'post', url: 'username', data: { id: _id }, success: function(data){ var id01 = data.id; alert(id01); }, error: function(data){ console.log('error'); } });
后台数据:
var express = require('exprexx');
var router = express.Router();
router.route('/username').post(function(req, res){
var _id = req.body.id;
console.log('_id');//12345
res.json({result: 'success'});
});