后端mysql服务不可用_GitHub - hedongxiaoshimei/egg-cms-server: 基于egg+mysql的后端服务demo,线上环境的应用参考:https://www.ne...

egg + mysql + swagger-ui 博客内容管理服务端示例

前言

针对想学习nodejs服务端知识的同学。

准备好一个可以连接mysql数据库【必须】。

下面的内容,需要花一点点时间阅读,如果对入门而言,将会有所收获。

项目仅是用于个人学习的示例,不是很完善,如有错漏,欢迎在issue中指正,不一定能及时改。

(服务启动后的界面)

687474703a2f2f6170692e6e65787470726f70732e636f6d2f7075626c69632f75706c6f61642f536e6970617374655f323032302d30352d30375f31322d35302d32392e706e67

(swagger-ui页面)

687474703a2f2f6170692e6e65787470726f70732e636f6d2f7075626c69632f75706c6f61642f536e6970617374655f323032302d30352d30375f31322d35372d31352e706e67

技术介绍

服务框架 阿里团队的 egg 框架。

ORM框架 sequelize (方便操作数据库)

特点

适合前端同学上手。

适合作为博客管理系统二次开发和学习。

集成了swagger-ui,方便查阅接口。

编写了部分用于博客内容管理的接口示例

编写了部分接口简易测试的页面。

已提供的接口

用户管理

鉴权

标签管理

文章管理 (文章content字段可以修改成mediumtext类型,这样可以存多内容)

评论管理

日志记录

文件上传 (默认路径: public/upload)

准备开始吧😎!

安装好mysql,并新建一个数据库,确保可以用可视化工具访问成功!

安装好mysql,并新建一个数据库,确保可以用可视化工具访问成功!

安装好mysql,并新建一个数据库,确保可以用可视化工具访问成功!

安装好工程依赖。

配置好链接数据库的参数。

在两个文件中配置好参数

config/config.prod.js

config/config.local.js

exports.sequelize = {

dialect: 'mysql', // support: mysql, mariadb, postgres, mssql

dialectOptions: {

charset: 'utf8mb4',

},

database: '数据库名', // 例如 'blog'

host: 'host', // 例如 '123.123.12.123'或'localhost'

port: '3306',

username: '数据库用户名', // 例如 'blog'

password: '数据库密码',

timezone: '+08:00',

};

运行 npm run db:migrate 在数据库中创建表。

运行 npm run dev

🤡如果出现以下报错,是因为数据库无法正常链接。请确保数据库有权限且能正常链接🤡

SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306

开发

目录概述

app/

contract/ swagger-ui的出入参项

controller/ 解析用户的输入,处理后返回相应的结果,也可以用于渲染页面

migrate/ 在数据库中记录模型文件

model/ 放置sequelize相关模型

service/ 使用不同的方法,操作数据库,是编写业务逻辑层。

router.js 路由

config/

config.default.js 全部相关配置项

config.local.js 本地sequelize配置 【重要】

config.prod.js 线上sequelize配置 【重要】

plugin.js 插件引入

sequelize.js sequelize配置

注意!要先配置好数据库的参数,并确保能连接成功。

$ npm i

$ npm run dev

$ open http://localhost:7001/

// 通过node指令,操作数据库。

$ npm run db:migrate // 迁移全部表(在新数据库中创建表)

$ npm run db:migrate:undo:all // 删除已经迁移的表

$ npm run db:migrate:undo // 删除最近的一次迁移的表

$ npm run db:migrate:undo:name // 删除指定表 npm run db:migrate:undo:name --name 表名

部署

$ npm start

$ npm stop

ps: 如果使用Jenkins部署的话要注意,Jenkins任务结束时候会自动关掉了所有的子进程

可参考:https://blog.csdn.net/qq_25559693/article/details/72844340

单元测试

[egg-bin] 内置了 [mocha], [thunk-mocha], [power-assert], [istanbul] 等框架,让你可以专注于写单元测试,无需理会配套工具。

断言库非常推荐使用 [power-assert]。

内置指令

使用 npm run lint 来做代码风格检查。

使用 npm test 来执行单元测试。

使用 npm run autod 来自动检测依赖更新,详细参见 autod 。

感谢大佬

参考过很多不同的范例,因为时间隔得比较久不记得了。感谢大佬。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值