该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

普通文档放置于项目中document目录下,database.sql为数据库初始化文件。

  1. 运行环境

    • npm: 6.9.0
    • node: v10.15.1
    • mysql: 5.6
    • express: 4.18.2
    • 需要安装模块
     npm install express --save
     npm install body-parser --save
     npm install cookie-parser --save
     npm install multer --save
     npm install swig --save
     npm install sync-mysql --save
    
  2. 启动
    源码启动:
    1、 创建website数据库,执行database.sql文件初始化数据库结构
    2、 修改config下的mysql.json配置
    3、 启动main.js
    4、 访问 http://宿主机IP:8080 docker镜像启动: 1、 创建website数据库,执行database.sql文件初始化数据库结构
    2、 修改config下的mysql.json配置
    3、 打包docker镜像到docker仓库,启动容器
    docker run -d -p 8080:8080 website:v1
    4、 访问 http://宿主机IP:8080 docker-compose启动: 1、 创建website数据库,执行database.sql文件初始化数据库结构
    2、 修改config下的mysql.json配置
    3、 使用docker-compose部署项目,或者配置idea插件启动
    docker-compos -f docker-compose.yml up -d --build web

  3. 架构说明
    程序采用MVC模式设计,结构清晰,便于扩展。

    • -src: 源代码
    • --config: 配置文件
    • ---mysql.config: mysql配置
    • --dao: 数据访问
    • ---UserDao.js: 用户数据访问接口
    • ---RoleDao.js: 角色、权限访问接口
    • ---MessageDao.js: 公告数据访问接口
    • --exception: 异常类
    • ---PasswordNotCorrectException.js: 密码错误异常
    • ---UserExistException.js: 用户已存在异常
    • ---UserNotExistException.js: 用户不存在异常
    • --filter: 过滤器
    • ---loginFilter.js: 登陆过滤器,用于过滤非法登陆
    • --static: 静态资源文件
    • ---home.html:首页
    • ---login.html:登陆页
    • ---message.html:详细消息页
    • ---register.html:注册页
    • --template: 数据访问模板,可扩展不同底层访问方式,适配不同类型数据库
    • ---jdbcTemplate.js:jdbc访问模板
    • --test: 单元测试
    • ---JdbcTemplateTest.js:jdbc模板单元测试
    • ---UserDaoTest.js:用户dao单元测试
    • --utils: 工具集
    • ---commonUtils.js:常用工具集
    • --AuthService.js: 权限服务
    • --router.js: 路由
    • --service.js: 服务层,登陆、消息发送,正式项目可以拆分成多个服务
    • -document: 文档说明
    • -main.js: 程序入口

    项目流程:express监听请求,收到请求之后通过router路由到对应的接口, service负责实现业务逻辑,dao负责提供service需要的访问数据库接口, jdbcTemplate封装底层数据库连接细节,业务代码执行完毕之后由router返回执行结果给请求方。

  4. 测试流程

    • 超级管理员 admin:123456
    • 管理员 manager:123456
    • 普通用户 lj:123456 系统默认内置3个用户,分别对应不同角色。
      单元测试:分别测试每一个类对应的方法是否合理,因为时间关系只实现了一点单元测试
      黑盒测试: 登陆admin用户:测试登陆,发布,读取消息、退出登陆功能正常
      登陆manager用户:测试登陆,发布,读取消息、退出登陆功能正常
      登陆lj用户:测试登陆,读取消息、退出登陆功能正常
      登陆admin账户,输错密码,显示密码错误消息,需要重新登录
      登陆不存在账户,输错密码,显示用户不存在,跳转注册界面,注册成功跳转首页
      注册已存在账户,跳转登陆界面,显示用户已存在,请登录
      任意账户已登录,点击退出,返回登陆页面,用户已退出
  5. 问题记录

  • 目前token算法简陋,后期可以更换计算逻辑
  • 超级管理员新增用户功能未实现,后期可以扩展
  • 目前未实现分页功能,数据都是取的最近TOP10
  • 未对数据进行校验
  • 从router到service层应该对数据进行转换,后期需要优化,不传原生的req和res。

空文件

简介

网页公告项目 展开 收起
JavaScript 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化