egg.js + sequelize 基础教程持续更新
1. 含义
1. 什么是sequelize
Sequelize.js 提供对 MySQL,MariaDB,SQLite 和 PostgreSQL 数据库的简单访问,通过映射数据库条目到对象,或者对象到数据库条目。简而言之,就是 ORM(Object-Relational-Mapper)。Sequelize.js 完全是使用 JavaScript 编写,适用于 Node.js 的环境。使用sq来进行数据库创建的管理,适用于较大项目的场景,可以将数据库的创建语句等记录下来,而不是我们直接去navicate里面进行数据库的创建。 总之就是方便管理,适用于大型项目或者想要自己的数据库能够更加规范的进行管理。
-
什么是egg.js
Egg.js(简称 Egg)是一个基于 Node.js 和 Koa 框架构建的企业级后端开发框架。它借鉴了 Express 的灵活和 Koa 的优雅,提供了一套开箱即用的开发框架和规范,旨在帮助开发者快速构建可扩展、可维护的应用程序。
2. egg.js 进阶操作
2.1 资源路由
-
含义
一个router监听器里面只需要使用resource进行监听就能监听里面所有的增删改查的路由路径操作
-
使用步骤
-
首先在router中创建一个路由
router.resources('/user', '/api/user', controller.user) // 注意这里的控制器只能使用一个单独的文件不能再点到里面的方法
-
然后再controller文件中创建一个user文件写入一下代码
const { Controller } = require("egg"); // 配置好以下增删改查的方法 class UserController extends Controller { // 资源路由 async index() { this.ctx.body = "列表页"; } async new() { this.ctx.body = "新增表单页"; } async create() { this.ctx.body = "新增逻辑"; } async show() { this.ctx.body = "详情页" + this.ctx.params.id; } async edit() { this.ctx.body = "编辑表单页"; } async update() { this.ctx.body = "更新逻辑"; } async destory() { this.ctx.body = "删除逻辑"; } } module.exports = UserController;
-
这样就能使用一个路由监听器来访问以下的所有控制器方法
get方法能够访问:
post方法访问:
delete方法访问:
put方法访问:
-
2.2 路由分组
-
含义:
将所有的路由文件进行模块化管理,方便项目体积较大时的维护和管理
-
步骤:
-
首先app下面的根路由文件不能动,然后再创建一个router文件里面分别管理不同操作的路由信息 比如用户登录操作用user.js管理,商品信息用goods.js管理
-
然后再把这些router下的文件使用require导入的方法导入到根路由文件中,同时还需要传入一个app
比如:
-
2.3 跨域
-
在egg.js中如果使用到了post请求都会