开发说明文档
liang👍2020-04-28 19:32:550

项目依赖

  1. 需要全局安装 cross-env 命令: npm install -g cross-env

  2. 其他node依赖: npm install

  3. nginx 配置

server {
    listen 80 default;
    return 500;
}
server {
    listen 80;
    server_name orz.show;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;

    index index.html index.htm index.nginx-debian.html;

    server_name orz.show;

    ssl on;
    ssl_certificate /var/www/new.cloverliang.me/config/ssl/fullchain.pem; # 证书路径
    ssl_certificate_key /var/www/new.cloverliang.me/config/ssl/privkey.pem; # key路径
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
    ssl_prefer_server_ciphers on;

    location / {
        client_max_body_size 1000m; # 最大上传文件大小限制

        # 跨域配置
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
        if ($request_method = 'OPTIONS') {
            return 204;
        }

        proxy_pass http://127.0.0.1:3000; # 设置反向代理
        proxy_set_header    Host             $host; # 保留代理之前的host
        proxy_set_header    X_Real_IP        $remote_addr; # 保留代理之前的真实客户端ip
        proxy_set_header    X_Forwarded_For  $proxy_add_x_forwarded_for; # 保存代理的ip地址
    }

    location ^~ /share {
        root  /var/www/;
    }
}
  1. 防火墙配置

    1. 安装ufw sudo apt-get install ufw

    2. 开启防火墙 sudo ufw enable

    3. 禁止端口 sudo ufw default deny

    4. 开启22端口 sudo ufw allow 22

    5. 开启80端口 sudo ufw allow 80

    6. 开启443端口 sudo ufw allow 443

    7. 开启443端口 sudo ufw allow 3306

  2. 安装 mysql sudo apt-get install mysql-server mysql-client

    1. 设置mysql远程登录 修改文件 /etc/mysql/mysql.conf.d/mysqld.cnf 注释 bind-address = 127.0.0.1 登录mysql 执行命令 grant all on *.* to username@'%' identified by 'password'; flush privileges;

    2. mysql重启 /etc/init.d/mysql restart

  3. 安装nginx sudo apt-get install nginx

    1. 重启nginx service nginx restart
  4. 安装git sudo apt-get install git

    1. git生成ssh key ssh-keygen
  5. 安装node 先安装nvm

    1. 命令: wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash

    2. 关闭命令行重新开启执行命令: nvm install --lts

  6. pm2 启动项目 pm2 start npm -- start

总需求/远期规划

  1. 作者区分大小写

  2. 用户个人中心

  3. 记住登录前地址 方便跳转

  4. 博客展示页加标题导航

  5. 评论加入表情支持

  6. 消息中心

  7. 注销用户不能回复

  8. 更改用户头像数据格式

  9. 登录 注册页面

  10. 增加用户被访问时的个人中心页面

  11. sql合并

  12. 导航栏提示未读消息

  13. 404 错误页 (包括 博客信息未找到 和 普通 404)

  14. 图床接口

  15. 后台接口整理优化

  16. 前后端分离 骨架方案

  17. 后台管理整体需求

  18. 后台接口使用ts开发 webpack打包

  19. log 错误处理和正常log分文件保存

  20. 增加一个上传图片的页面(接口已经有了,目前使用form-data上传,以后大文件考虑使用分片上传)

近期需求

  1. 增加搜索功能和页面 参照苹果网站样式

  2. 留言内容正则 不替换换行 因为要支持Markdown 所以空白字符需要保留

  3. 导航分类页面 及其子页面

  4. 防止注入攻击设计参考

  5. models 和 controllers 文件夹对应

  6. 后台管理增加博客文章功能编辑博客文章功能

  7. 管理后台文章详情背景图回显地址有误

  8. 增加查看评论数据功能

  9. 所有状态字段统一 0 表示删除 1 表示正常 2 表示隐藏

  10. 评论锚点

  11. 评论数据的删除 屏蔽 恢复功能

    1. 评论增加不显示状态 前后台都需要改 取数据时
    2. 总评论中不包括关于页的 关于页的另算
  12. 评论被删除就不应该展示出来

  13. 关于页编辑和修改及评论查看功能

  14. toast提示

  15. 回收站功能 总的回收站 显示文章 用户 评论的删除数据

  16. 所有的非数据库删除都提示移动到回收站

  17. 用户的屏蔽功能 (不是删除)

  18. 字数上限限制 后台字数上限及评论等的上限

  19. 后台管理没有数据提示

  20. 新用户注册提醒

  21. 开启了mysql多语句查询, 优化及风险控制

  22. 后台管理简单响应式设计

  23. 彻底删除用户bug 获取评论时评论者数据获取为null

  24. 增加批量修改

开发规范

  1. master 分支 线上稳定版本 只允许和dev分支合并

  2. dev 分支 开发分支 只负责合并其他分支和测试

  3. 其他分支 均由dev分支而来 只有当功能开发完成后才可以合并到dev分支 命名规则 开发者昵称+开发功能名字+时间 eg: cloverliang_search_180830

  4. bug 允许直接从master分支获取修复分支 但是合并只允许合并到dev分支 命名规则 开发者昵称+hotfix+时间 eg: cloverliang_hotfix_180830

  5. 除了master分支 dev分支 和没有开发完的分支 其余分支应在合并并确认无误后删除

  6. master 分支在提交后 应在当前commit上设置版本号(即tag)

版本号命名规范与原则

  1. 软件版本号由四部分组成: <主版本号>.<子版本号>.<阶段版本号>.<日期版本号>
    eg: 1.1.1.180830

版本号修改规则

  1. 主版本号(1): 当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化 一般不兼容上一个主版本号
  2. 子版本号(1): 当功能有一定的增加或变化,比如增加了对权限的控制,增加自定义视图等功能 必须向下兼容不能直接删除功能 如需删除可以将该功能标记为即将删除 在下一个主版本中删除该功能
  3. 阶段版本号(1): 一般是bug修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复严重bug即可发布一个修订版
  4. 日期版本号(180830): 格式yymmdd用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号

注意事项

  1. 版本号前不要加v
  2. 不要再数字前补0 eg: 01.12.03
  3. 每一位版本号需要递增 不允许跳跃
  4. 子版本号递增时 阶段版本号归0 主版本号递增时 子版本号和阶段版本号归0

更新时间:2022-04-06 21:43:04

文章分类:关于我的

喜欢

暂时还没有评论 不如来抢个沙发