express的路由文件中,需要获取路由参数,例如获取指定的某个学生信息,/student/id,如何在回调里面获取呢?
router.get('/student/:id',function(req, res, next){
})
使用req.params方法
router.get('/student/:id',function(req, res, next){
var id = req.params.id;
})
如果要获取查询字符串,也就是?后面的信息,例如 /student?id=12&name=tom
使用req.query
router.get('/student',function(req, res, next){
var id = req.query.id;
var name = req.query.name;
})
以上方法获取的是路由中的参数,那这里延伸下,如果是post请求,参数是放在http的请求数据中,如何获取到呢?
首先,引入bodyParser中间件,用来解析JSON、Raw、文本、urlencoded格式的请求体.
var bodyParser = require('body-parser');
使用中间件
var express = require('express');
var bodyParser = require('body-parser);
var app = new express();
// 获取解析json类型请求体
app.use(bodyParser.json());
// 获取解析application/x-www-form-urlencoded类型请求体
app.use(bodyParser.urlencoded({extended: false}));
对应的路由回调中,通过req.body来获取
router.post('/login_success', function(req, res, next){
res.send({
phone: req.body.phone,
password: req.body.password
});
})