常用的中间件方法
//. app.get() 方法 接收get请求 //. app.post() 方法 接收post请求 //. app.usr() 方法 接收get 和 post 请求
一 中间件基本使用
1)什么是中间件
. 就是express提供的一堆方法
. 可以接收客户端发来的请求 可以对请求做出响应 也可以将请求交给下一个中间件继续处理
2)它的好处
. 可以将一个复杂的请求逻辑进行分开处理
. 也可以在请求到达指定路由之前 先做一些验证 比如查看用户是否登录
3)中间件的构成
. 两部分构成:中间件方法 和 请求处理函数
. 中间件方法由express框架提供 负责 请求拦截
. 请求处理函数由开发人员提供 负责 请求的处理
--------------------------------------------------
路由的get()和post()就属于中间件方法
4 )同一请求可以设置多个中间件
//1 可以针对同一个请求设置多个中间件 对同一个请求进行多次处理 //2 用到了第三个参数 next 它其实是一个权限控制函数 调用它 请求就会走到下一个中间件
//1 引入express框架 const express = require('express'); //2 创建app服务器 const app = express(); //3 引入路径处理模块 const path = require('path'); //3 静态资源访问服务功能 app.use(express.static(path.join(__dirname,'public'))); app.get('/user',function (req,res,next) { req.name = '张三'; next();//调用next方法 让请求继续向下执行 }); app.get('/user',function (req,res) { res.send(req.name); }); //默认情况下 请求从上到下依次匹配中间件 一旦匹配成功 就不再向下执行 //此时用到了第三个参数 next 它其实是一个方法 作用是: 是否允许请求继续走到下一个中间件 //调用next 请求就会继续向下走 //4 监听端口 app.listen(80); console.log('server服务器启动成功55');
浏览器地址: http://localhost/user
二 app.use中间件的用法
//1 引入express框架 const express = require('express'); //2 创建app服务器 const app = express(); //------------------- 本节重点 -------------------------------- //1. 接受所有的请求: 直接传入请求处理函数 app.use(function (req,res,next) { //res.send('你好'); next(); }); //2. 接收某一个请求 第一个参数可递请求地址 带表不论什么请求方式 只要是这个请求地址就接收这个请求 app.use('/admin',function (req,res) { res.send('hello admin'); }); //--------------------------------------------------- //4 监听端口 app.listen(80); console.log('server服务器启动成功55');
三 中间件的应用场景
//1 路由保护
客户端在访问需要登录的页面时 可以先使用中间件判断用户登录状态 用户如果未登录 则拦截请求 直接响应 禁止用户进入需要登录的页面
//2 网站维护公告 [ 定义在所有路由的最前面 ]
//3 自定义404页面 [ 定义在所有路由的最后面 ]
路由保护代码
//1 引入express框架 const express = require('express'); //2 创建app服务器 const app = express(); app.use('/admin',function (req,res,next) { isLogin = true; if (isLogin) { next(); } else { res.send('您还没有登录 不能访问后台页面'); } }) app.get('/admin',(req,res) => { res.send('您已经登录了 可以访问后台页面'); }); //4 监听端口 app.listen(80); console.log('server服务器启动成功55');
请求地址: http://localhost/admin
网站公告代码
//1 引入express框架 const express = require('express'); //2 创建app服务器 const app = express(); //需要定义在所有路由的最前面 拦截所有的请求 app.use(function (req,res) { res.send('网站正在维护中'); }) //4 监听端口 app.listen(80); console.log('server服务器启动成功55');
404 代码
//1 引入express框架 const express = require('express'); //2 创建app服务器 const app = express(); app.get('/admin',function (req,res) { res.send('hello admin'); }); //自定义404页面 //需要定义在所有路由的最后面 所有路由都匹配过了 也没有找到资源 就是404页面 app.use(function (req,res) { //为客户端响应404状态码 以及提示信息 404表示资源没有找到 res.status(404).send('404页面'); //可以链式调用 }); //4 监听端口 app.listen(80); console.log('server服务器启动成功55');
四 错误中间件的使用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。