Express中的主要路由
express主要路由 方法:
get,post,all,use等
当用get请求时候:
let app=express();
app.get(path,(req,res)=>{
//执行语句
})
当用post请求时候:
let app=express();
app.post(path,(req,res)=>{
//执行语句
})
若想处理该网址任何请求的时候:
let app=express();
app.all(path,(req,res)=>{
//执行语句
})
●请求的网址www不分大小写;
●GET参数?、#被忽略,路由到/a,访问/a?id=2#fs也能被处理到;
●不同的路由method,对页面的使用也不同;但是同样method下,相同路由则只会访问第一个,而中间件则可以解决;
访问路由参数
在定义路由时候,路径可以使用正则表达式,位置不分用圆括号分组,然后,可以用req.params[0]、[1]得到,也可以通过冒号变量获取。
- 类数组对象
let app=express();
app.all(/^\/books\/([\d]{6})/,(req,res)=>{
res.send('查询的书籍编号为:'+req.params[0]) ;
//req.params[0]表示([\d]{6})这个未知部分
})
- 冒号
app.get('/book/:num',(req,res)=>{
let num=req.params['num'];
if(/^[\d]{6}$/.test(num)){
res.send('查询的书籍编号为:'+num)
}else{
res.send('格式错误')
}
})
express中的中间件
中间件是用来匹配多个路由的方法
- next参数
app.get('/book',(req,res,next)=>{
console.log('1');
next();
//next调用之后,会继续向下匹配路由
});
app.get('/book',(req,res)=>{
console.log('2');
});
//使用next之后,便匹配了两个路由,打印了1和2
- app.use方法
app.use('/book',(req,res)=>{
res.end('hello ')
})
//app.use()也是一个中间件,与get、post不同的是,它匹配的网址是不精确的,/book/a、/book/aaa/bbb这些路由都能匹配到
//如果路由为根目录/,则可以忽略不写,参数只有一个回调函数
路由中的主要响应方法
方法 | 说明 |
---|---|
res.download() | 提示下载文件 |
res.end() | 终结响应处理流程 |
res.json() | 发送一个json文件 |
res.jsonp() | 发送一支持jsonp的json格式响应 |
res.redirect() | 提示重定向 |
res.render() | 渲染视图模板 |
res.send() | 智能选择发送数据的MIME类型病终结 |
res.sendFile() | 八位字节发送文件 |
res.sendStatus() | 设置响应状态代码,并以字符串形式作为响应体的部分发送 |