继续我的自建博客之旅,前端手写出来了,用php
搭的一个简单的后台(用 .txt
当数据库😂 ),于是简单学习了 node
准备搭建博客后台。
采用 koa
+ mysql
来实现。首先,来考虑写后台有哪些功能……👉(ps:本篇文章几乎没代码)
项目源码:github.com/Ray-daydayu…
虽然说的很高大上,分析啥项目需求,其实就是自己后台需要哪些功能👇
那么其实整个博客的所有功能都围绕文章、标签、分类和用户四个对象来的,那么这几个对象的关系是什么呢?🤔
既然功能理清了,那么就是设计数据库了(原谅我又偷懒了,没写类型啥的,因为手敲 markdown
表格太难了,手疼😭)
字段 | 注释 |
---|---|
id | 主键id |
title | 文章标题 |
abstract | 摘要 |
content | 内容 |
createtime | 创建时间 |
modifiedtime | 修改时间 |
categoryid | 分类id |
state | 文章状态 |
字段 | 注释 |
---|---|
id | 主键id |
name | 名称 |
description | 描述 |
state | 标签状态 |
字段 | 注释 |
---|---|
id | 主键id |
name | 名称 |
description | 描述 |
state | 标签状态 |
字段 | 注释 |
---|---|
id | 主键id |
username | 用户名 |
password | 密码 |
state | 帐号状态 |
permission | 权限 |
字段 | 注释 |
---|---|
id | 主键id |
article_id | 文章id |
tag_id | 标签id |
注意事项
ctrl+shift+B
,然后👉😁😜🌴),所以 MySQL
的表和数据库的字符集要设置为utf8mb4
首先,忽略业务相关的东西之后,这个项目还需要做啥?🤔
JWT
的生成和验证,这个是少不了的我能想到的大概也就这么多,下面主要说文件目录的划分,怎么创建 koa
项目,官网或者百度就可以知道,我是根据koa-cli
创建的项目,更改的我的目录结构是这样的👇
myblog-backend ├── bin │ └── www // 入口 ├── controllers // 数据库逻辑,sql语句 │ ├── articles.js │ ├── articles_tags.js │ ├── article_view.js │ ├── category.js │ ├── tags.js │ └── user.js ├── middleWares //封装的中间件 │ ├── catchError.js │ ├── paramCheck.js │ └── tokenAuth ├── models //一些model,用来处理响应 │ ├── http-error.js │ └── http-success.js ├── routes //路由,这里也负责参数校验 │ ├── article.js │ ├── category.js │ ├── tags.js │ └── user.js ├── service // 用来写业务逻辑和返回响应的 │ ├── article.js │ ├── category.js │ ├── tags.js │ └── user.js ├── utils // 一些工具函数 │ ├── cryp.js //MD5加密,用于登录等 │ ├── mysql.js // 封装的mysql操作函数 │ ├── resCode.js //响应状态码的封装 │ └── token.js //token工具函数 ├── app.js ├── config.js //配置 ├── package-lock.json ├── package.json └── README.md 复制代码
主要完成了项目的总体设计,计划准备再写响应处理、参数验证和 token
验证三节,数据库封装就不写了,网上很多相关教程,我用的 是nodejs
的 mysql
。值得注意的是由于数据库字符集为utf8mb4
,所以在写配置的时候要注意这点要配置。