乐趣区

关于前端:多人后台管理系统-DAY01

(一) 路由跳转和抽取公共局部代码

BLOG -- 源码目录
├── model -- 数据库操作
└──  public -- 动态资源
      ├── home -- 博客展现页面
      └── admin -- 博客治理页面
└── route -- 路由  
      ├── admin.js -- 博客治理页面路由
      └── home.js -- 博客展现页面路由
└── views -- 模板
     ├── home -- 博客展现页面 art 模板
     └── admin -- 博客治理页面 art 模板
          └──common -- 公共局部 art 模板
               ├── header -- 头部公共模板
               ├── aside -- 侧边栏公共模板
               └── layout -- 骨架公共模板
          ├── article-edit.art
          ├── article.art
          ├── user.art
          └── user-edit.art
└── app.js -- 创立网站服务 

1.2 案例初始化

  1. 建设我的项目所需文件夹

    public 动态资源
    
    model 数据库操作
    
    route 路由
    
    views 模板 
  2. 初始化我的项目形容文件

    npm init -y
    
  3. 下载我的项目所需第三方模块

    npm install express mongoose art-template express-art-template

  4. app.js

    • 创立网站服务器,援用 expess 框架
    • 构建模块化路由,引入路由模块,为路由匹配申请门路
    • 构建博客治理页面模板:引入门路,凋谢动态资源文件
    • 渲染后缀为 art 的模板:app.set 确认门路,引入 express-art-template(一种作用域预申明的技术来优化模板渲染速度)模板引擎进行渲染

      // 援用 expess 框架
      const express = require('express');
      // 解决门路
      const path = require('path');
      // 创立网站服务器
      const app = express();
      // 通知 express 框架模板所在的地位
      app.set('views', path.join(__dirname, 'views'));
      // 通知 express 框架模板的默认后缀是什么
      app.set('view engine', 'art');
      // 当渲染后缀为 art 的模板时 所应用的模板引擎是什么
      app.engine('art', require('express-art-template'));
      // 凋谢动态资源文件
      app.use(express.static(path.join(__dirname, 'public')));
      // 引入路由模块
      const home = require('./route/home');
      const admin = require('./route/admin');
      // 为路由匹配申请门路
      app.use('/home', home);
      app.use('/admin', admin);
      // 监听端口
      app.listen(80);
      console.log('网站服务器启动胜利, 请拜访 localhost')
      
  5. admin.js

    • 创立模块化路由:引入 express 框架,创立页面展现页面路由,将路由对象作为模块成员导出
    • home.js 与 admin.js 相似不做赘述

      // 援用 expess 框架
      const express = require('express');
      // 创立博客展现页面路由
      const admin = express.Router();
      // 测试登录页面
      admin.get('/', (req,res)=>{res.send('欢送登录博客展现页面')});
      // 将路由对象做为模块成员进行导出
      module.exports = admin;

    6.layout.js

    • 优化模板(抽离公共局部),建设骨架模板,精简代码
    • 相似的还有 aside.js header.js 都是把公共局部的代码抽离
    <!DOCTYPE html>
    <html lang="en">
    <head>
     ···
     {{block 'link'}}{{/block}}
    </head>
    <body>
     {{block 'main'}} {{/block}}
     ···
     {{block 'script'}} {{/block}}
    </body>
    </html>

    8.user.art

    • 对于 layout.art 的填充,相似的包含 user-edit.art article.art
    • 将动态资源中的 html 提出来,后缀改为 art
    {{extend './common/layout.art'}}
    {{block 'main'}}
     <!-- 子模板的相对路径绝对的就是以后文件 因为它是由模板引擎解析的 而不是浏览器 -->
     {{include './common/header.art'}}
     <!-- 主体内容 -->
     <div class="content">
         {{include './common/aside.art'}}
         <div class="main">
             <!-- 分类题目 -->
             <div class="title">
                ···
             <!-- / 分类题目 -->
             <!-- 内容列表 -->
            ···
             <!-- / 内容列表 -->
             <!-- 分页 -->
             ···
             <!-- / 分页 -->
         </div>
     </div>
     <!-- / 主体内容 -->
    {{/block}}
    {{block 'script'}}
     <script type="text/javascript">
        ···
     </script>
    {{/block}}
退出移动版