前言
这不阿里云搞活动可领取六个月免费使用云主机么。闲来无事就领了个,想着写个个人主页玩玩。至于采用什么技术呢?好吧,那当然是什么新用什么啦!纯粹是检验自己学习能力O(∩_∩)O哈哈~。
虽然目前做的是前端,不过后端我也会呀。就是太久没有接触了,怕手生。之前做的还是j2ee,好怀念。本着学习新技术,此次后端采用koa2。
<font color=red>和之前的对比</font>
以前 | 现在 | |
---|---|---|
语言 | Java | Javascript |
数据库 | mysql | mongodb、redis |
认证 | session-cookie | jwt |
目录结构
├── assets // 静态文件
│ ├── uploads // 保存上传的文件
├── build // 构建相关
├── log // 日志
├── src // 源代码
│ ├── config // 配置文件
│ ├── controllers // 控制器,mvc中的controller
│ ├── middleware // 中间件
│ ├── models // 模型,mvc中的model
│ ├── routes // 路由
│ ├── services // 服务方法
│ ├── utils // 工具方法
│ └── app.js // 启动文件
├── .babelrc // babel-loader 配置
├── .editorconfig // 编辑器配置项
├── .eslintignore // eslint忽略项
├── eslintrc.js // eslint 配置项
├── .gitignore // git 忽略项
├── LICENSE // LICENSE
└── package.json // package.json
└── publicKey.pub // 存放鉴权的密钥
首先说下基本工具
构建工具
本来想采用webpack,超喜欢它的热刷新有木有。可惜实现了发现麻烦了点,
实现方法见koa2后端热更新,遂用了<font color=red>nodemon</font>简单重启了下。
eslint
无论是基于什么原因,代码风格一致是必须的。何况博主处女座。自行配下即可。鉴于规则较多,费了点时间基本涵盖了所有规则,当然都是贴于我自己喜欢的。不过基本上都注释了,有兴趣的话可以看看。eslintrc.js
本人使用的IDE为vscode ,以下为本人配置
其实可以看看一些优秀团队的配置(node_modules下定位到具体包查看即可)。
实现的一些手段
首先说下咱们做什么。怎么说呢?大体就是使用koa2实现一个RESTFUL API服务端给个人网站提供服务。
认证/授权
认证授权机制采用有状态JWT。后端采用Redis控制Token时效。前端采用accesstoken、refreshtoken双token机制。
具体原理方法看此