13 ~ express ~ 后台页面的搭建
后台 搭建 页面 13 Express
2023-09-14 08:57:23 时间
一, 后台路由文件 /router/admin.js
var express = require('express')
var router = express.Router()
/**
* 验证用户是否为管理员 ,防止其他用户通过 /admin 路径访问
*/
router.use((req,res,next)=>{
console.log( req.userInfo.isAdmin)
if(!req.userInfo.isAdmin){
res.send('对不起,你不是管理员,不能进入')
return
}
next()
})
router.get('/',(req,res,next)=>{
console.log(('admin ---- req.userInfo 数据 :'+JSON.stringify(req.userInfo)).yellow)
res.render('admin/index',{
userInfo:req.userInfo
})
})
module.exports = router
二,后台视图文件 /views/admin/index.html ,
运用了模块的 调用 ,嵌套,继承重写 等语法
1,前台页面对其他页面的调用 : {% extends 'layout.html' %} // 调用当前目录下的 layout.html 页面 ,实现对模板的继承
2,调用完其他页面,本页面将不能直接写代码。
3,要先 被调用的模板里 通过定义 block 区块 进行占位 。 // 例如,定义一个main的block区块: {% block main %} {% endblock %}
4,在调用者的模板里 通过重新定义block区块的内容进行重写输出 (相当于面向对象中的继承和重写)
{% extends 'layout.html' %}
{% block main %}
<div class="jumbotron">
<h1>Hello, {{userInfo.username}}!</h1>
<p>欢迎进入系统后台</p>
</div>
{% endblock %}
三, 被视图主页文件 /views/admin/index.html 调用的视图文件 /views/admin/layout.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>后台</title>
<link rel="stylesheet" href="/public/css/bootstrap.min.css">
<link rel="stylesheet" href="/public/css/bootstrap-theme.min.css">
<script src="/public/js/jquery.js"></script>
<script src="/public/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="/admin">后台管理</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">用户管理</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
{{userInfo.username}}
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">退出</a></li>
</ul>
</li>
</ul>
</div><!-- /.container-fluid -->
</nav>
<div class="containner-fluid">
{% block main %}123{% endblock %}
</div>
</div>
</body>
</html>
相关文章
- 后台执行linux命令
- Screen-后台运行
- shopex 后台文件修改-删除未授权用户[免费]、后台客服服务、购买咨询、帮助、授权
- Magento 添加后台管理 addColumn
- Mongodb后台daemon方式启动
- 基于EasyDSS流媒体服务器实现的直播流管理与鉴权的后台方案
- Spring boot后台搭建二为Shiro权限控制添加缓存
- Spring boot后台搭建二集成Shiro权限控制
- Spring boot后台搭建二集成Shiro添加Remember Me
- Spring boot后台搭建二集成Shiro实现用户验证
- 使用Vitamio打造自己的Android万能播放器(11)—— 本地扫描后台服务
- python扫描后台地址
- 一个用于SAP UI5学习的脚手架应用,没有任何后台API的依赖
- 如何调试SAP CRM产品主数据应用后台ABAP端抛出的错误消息
- IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/中后台/体验管理等)之详细攻略
- 解决springboot+vue+mybatis中,将后台数据分页显示在前台,并且根据页码自动跳转对应页码信息
- 基于 FastAdmin 开发后台流程 (持续更新)