个人博客__服务端
Egg.js
Blog_Service
├─ .autod.conf.js
├─ .editorconfig
├─ .eslintignore
├─ .eslintrc.js
├─ .gitignore
├─ .prettierrc
├─ .sequelizerc
├─ .travis.yml
├─ README.md // README
├─ app
│ ├─ controller // 控制器
│ │ ├─ article.js // 文章
│ │ ├─ base.js // 基础
│ │ ├─ dict.js // 字典
│ │ ├─ home.js // 初始化
│ │ ├─ log.js // 埋点
│ │ ├─ user.js // 登陆
│ │ └─ wx // 微信小程序
│ │ ├─ login.js // 登陆
│ │ └─ task.js // 活动
│ ├─ middleware
│ │ ├─ errorHandler.js // 错误统一处理
│ │ └─ jwt.js // jwt鉴权
│ ├─ model // Eggjs数据库(x)
│ │ ├─ article.js
│ │ └─ user.js
│ ├─ public // 公共文件(x)
│ ├─ router.js // 接口路由
│ └─ service // 服务器
│ ├─ article.js // 文章
│ ├─ base.js // 基础
│ ├─ dict.js // 字典
│ ├─ log.js // 埋点
│ ├─ user.js // 登陆
│ └─ wx // 微信小程序
│ ├─ login.js // 登陆
│ └─ task.js // 活动
├─ appveyor.yml
├─ config
│ ├─ config.default.js
│ └─ plugin.js
├─ jsconfig.json
└─ package.json
Egg 推荐sequelize语法 (x)
- 安装并配置egg-sequelize插件(它会辅助我们将定义好的 Model 对象加载到 app 和 ctx 上)和mysql2模块:
npm install --save egg-sequelize mysql2
- 在config/plugin.js中引入 egg-sequelize 插件
exports.sequelize = { enable: true, package: 'egg-sequelize', };
- 在config/config.default.js进行数据库基础配置
- sequelize 提供了sequelize-cli工具来实现Migrations
npm install --save-dev sequelize-cli
- egg 项目中,我们希望将所有数据库 Migrations 相关的内容都放在database目录下,所以我们在项目根目录下新建一个.sequelizerc配置文件
'use strict' const path = require('path'); module.exports = { config: path.join(__dirname, 'database/config.json'), 'migrations-path': path.join(__dirname, 'database/migrations'), 'seeders-path': path.join(__dirname, 'database/seeders'), 'models-path': path.join(__dirname, 'app/model'), };
- 初始化 Migrations 配置文件和目录
npx sequelize init:config npx sequelize init:migrations // npx sequelize init:models
- 行完后会生成database/config.json文件和database/migrations目录,我们修改一下database/config.json中的内容,将其改成我们项目中使用的数据库配置
- 创建数据库
npx sequelize db:create
- 创建数据迁移表
npx sequelize migration:generate --name=init-user
- 执行完命令后,会在database / migrations / 目录下生成数据表迁移文件,然后定义表的属性
- 执行 migrate 进行数据库变更
# 升级数据库 npx sequelize db:migrate #如果有问题需要回滚,可以通过 `db:migrate:undo` 回退一个变更 npx sequelize db:migrate:undo 可以通过 `db:migrate:undo:all` 回退到初始状态 npx sequelize db:migrate:undo:all
使用MySQL语法 (v)
- 使用Navicat 新建MySQL数据库
- 服务端使用MySql语法进行开发
- 不推荐使用拼接方法,而是使用Eggjs的query写法
提前下载好npm
- 将代码打包
cd baseDir npm install --production tar -zcvf ../release.tgz .
- 上传至服务器相应位置,在该位置进行解压缩
tar zxvf release.tgz
- 随后开启服务
npm start