Koa2+Nodejs+MongoDb全栈项目 (持续更新中 ~~)

本博客介绍了一个使用Koa2、Node.js和MongoDB构建的全栈CMS项目,涵盖了数据库设计、权限验证、验证码、分页、富文本编辑器等多个核心功能。详细讲解了登陆、退出、头部欢迎信息、导航高亮及管理员用户列表的实现过程,并提供了项目源码链接。文章强调了学习持久性和前端技术交流的重要性。
摘要由CSDN通过智能技术生成

项目介绍:Koa2+Nodejs+MongoDb实现CMS前后端全栈项目
涉及: Koa封装DB库、 用户权限判断 、验证码 、分页、多级分类、ueditor可视化富文本编辑器、图片上传、底层DB库封装、扩展art-template的核心方法、ajax改变状态、ajax排序、、前后端分离 RESTful API Api接口、JWT接口权限验证

项目源码:https://gitee.com/lwtupup/CMS (持续更新中。。。)

程海灿烂,愿你归来仍是是少年
学习无它法,唯有持之以恒
前端技术学习交流群:686160287

在这里插入图片描述
设计数据库ER图:
在这里插入图片描述

首先保证页面的走通

  • 搭建koa服务器

  • 配置路由和子路由实现对应页面的展示

    • art-template模板引擎进行后台渲染页面

    • 利用 koa-router 包进行配置 router.use()

    • 一层套一层设计子路由的路由文件

  • css js image 等静态资源的搭建

    • 利用 koa-static 包进行管理,配置存放静态资源文件。

    • 在admin.js文件中的路由中间件中设置一个模板引擎host全局的变量,方便访问这个根地址下的所有资源。

ctx.state.__HOST__ = "http://" + ctx.request.header.host;
http://localhost:3000
  • 把 .html 文件的公共部分都抽取出来单独设置成html文件,便于维护和修改。
    • 通过art-template的子模版语法 { { inlcude ’ 路径 ’ }}

登陆页面功能实现

  • 权限验证
    • 没有登陆成功不能够访问相关的后台管理页面,登陆成功后在同一个浏览器中打开下次就不需要登陆了
    • 在登陆的时候如果登陆成功则将改用户设置成 session 值。
    • 在 admin.js 路由文件下设置一个路由中间件,所有的 admin 相关的路由都要经过这里,判断是否携带 session 值,没有 session 值则重定向回登陆页面,有 session 值则进行后面的路由匹配。逻辑代码如下:
/* 配置路由中间件--获取url地址--配合静态资源的访问 */
router.use(async (ctx, next) => {
   
  //模板引擎配置全局的变量
  ctx.state.__HOST__ = "http://" + ctx.request.header.host;
  let pathname = url.parse(ctx.request.url).pathname;
  //权限设置
  if(ctx.session.userInfo){
   
    await next();
  }else{
     //没有登陆跳转到登陆
    if(pathname == '/admin/login' || pathname == '/admin/login/doLogin' || pathname == '/admin/login/code'){
   
      await next();
    }else{
   
      ctx.redirect('/admin/login');
    }
  }
});
  • 验证码的验证
    • 生成验证码用到的模块:https://www.npmjs.com/package/svg-captcha
    • 模块基本用法:
/* 验证码请求 */
router.get('/code', async (ctx) => {
   
  const captcha = svgCaptcha.create({
   
    size: 4,
    fontSize: 50,
    width: 100,
    height: 40,
    background: "#cc9966"
  })
  //校验验证码时先把验证码的数字存储到session中
  ctx.session.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值