- 路由保护,客户端在访问需要登录的页面时,可以先使用中间件判断用户登录状态,用户如果未登录,则拦截请求,直接响应,禁止用户进入需要登录的页面
代码示例:
// 引入express框架 返回的是一个方法
const express = require('express');
// 调用express创建网站服务器,创建变量来接收
const app = express();
app.use('/admin',(req,res,next) => {
// 默认用户是没有登录的状态 先手动模拟一下
let isLogin = false;
// 如果用户登录了,则调用next方法继续向下执行
if(isLogin){
next();
// 如果用户未登录,则提示无法访问
}else {
res.send('您还未登录,无法访问下一个页面');
}
})
app.get('/admin',(req,res) => {
res.send('您已经登录成功,可以访问下一个页面');
})
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
执行结果如下:
如果代码中的let isLogin = true; 则会提示可以进入下个页面
- 网站维护公告,在所有路由的最上面定义接收所有请求的中间件,直接为客户端做出响应,网站正在维护中
代码示例:
// 引入express框架 返回的是一个方法
const express = require('express');
// 调用express创建网站服务器,创建变量来接收
const app = express();
// 网站公告,没有使用next方法,表示执行完此中间件后就终止了,不会再向下执行
app.use((req,res) => {
res.send('网站正在维护当中');
})
app.get('/index',(req,res) => {
res.send('您已经登录首页');
})
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
执行结果如下:
- 自定义404页面,当用户访问的请求路径不存在时,可以为不存在的请求路径定义一个专门的路由,通知用户当前访问的页面不存在
代码示例:
// 引入express框架 返回一个方法
const express = require('express');
// 调用express创建网站服务器,创建app变量接收
const app = express();
app.get('/admin',(req,res) => {
res.send('欢迎登录首页');
})
// 除了访问admin页面,访问其他页面都会执行该中间件
app.use((req,res) => {
// 设置状态码为404,并响应内容,可以链式编程写
res.status(404).send('当前页面不存在');
})
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
执行结果如下: