返回
Egg.js+Mysql零基础上手:入门、配置、实战部署
前端
2023-07-13 20:42:51
Egg.js和MySQL:从入门到高级
简介
在后端开发中,数据持久化至关重要。本文将详细介绍如何使用Egg.js框架轻松地将MySQL数据库集成到您的项目中。我们将探讨两种配置方案,并通过一个实际的项目需求——用户注册和登录系统——来展示其用法。最后,我们将使用Docker进行实际部署,以便您可以在任何环境中轻松地部署您的应用程序。
配置方案
Egg.js提供了两种配置MySQL的方式:
- 通过app.js: 在app.js文件中,找到app.config中的mysql项,并按照指定的格式进行配置。
- 通过config.default.js: 在config.default.js文件中,找到mysql项,并进行相应的配置。
项目实战:用户注册和登录
为了演示MySQL集成的实际应用,我们将创建一个用户注册和登录系统。
创建项目
首先,使用Egg.js初始化一个新的项目:
egg-init <project-name>
安装MySQL模块
npm install egg-mysql
配置MySQL插件
在config/plugin.js中,配置MySQL插件:
exports.mysql = {
enable: true,
package: 'egg-mysql',
};
创建用户模型
在app/model中,创建User模型:
'use strict';
module.exports = app => {
const {INTEGER, STRING, DATE} = app.Sequelize;
const User = app.model.define('user', {
id: {type: INTEGER, primaryKey: true, autoIncrement: true},
username: {type: STRING(30), allowNull: false, unique: true},
password: {type: STRING(128), allowNull: false},
created_at: {type: DATE, allowNull: true},
updated_at: {type: DATE, allowNull: true},
});
return User;
};
创建用户控制器
在app/controller中,创建用户控制器:
'use strict';
class UserController extends app.Controller {
async register() {
// 检查用户名是否存在
// ...
// 创建用户
// ...
// 返回成功信息
// ...
}
async login() {
// 查询用户是否存在
// ...
// 检查密码是否正确
// ...
// 生成token
// ...
// 返回成功信息和token
// ...
}
}
module.exports = UserController;
配置路由
在app/router.js中,配置路由:
module.exports = app => {
const {router, controller} = app;
router.post('/api/user/register', controller.user.register);
router.post('/api/user/login', controller.user.login);
};
使用Docker部署
安装Docker
按照Docker官网的说明进行安装。
构建镜像
docker build -t <image-name> .
运行容器
docker run -p <port>:3000 <image-name>
访问应用程序
在浏览器中访问http://localhost:<port>
即可访问应用程序。
常见问题解答
- 如何连接到MySQL数据库?
通过app.model.connect()方法。 - 如何查询数据?
使用app.model.findAll()或app.model.findOne()方法。 - 如何插入数据?
使用app.model.create()方法。 - 如何更新数据?
使用app.model.update()方法。 - 如何删除数据?
使用app.model.destroy()方法。
结论
本文提供了Egg.js和MySQL集成的全面指南,包括配置方案、实际项目应用和使用Docker进行部署。通过遵循这些步骤,您将能够在Egg.js项目中轻松地使用MySQL,并构建功能强大、可扩展的后端应用程序。