Node - Egg.js 框架从入门到放弃系列(6)- 数据库 MySQL

mac2025-08-05  2

本文为个人学习整理所得,希望对读者有所帮助。

MySQL基本信息

在后面的开发中,我们会使用MySQL作为数据库来开发,使用Navicat来管理数据库。

安装教程

如果还没安装的小伙伴可以看看下面的文章,这里就不过多叙述了。

超详细MySQL安装及基本使用教程

mysql数据库管理工具navicat基本使用方法

创建数据库和表

进入mysql安装目录的bin目录,我这里是C:\Program Files\MySQL\MySQL Server 8.0\bin,打开CMD命令行逐条输入:

create database egg_mock charset=utf8; use jing_dong; create table goods( id int unsigned primary key auto_increment not null, name varchar(150) not null, cate_name varchar(40) not null, brand_name varchar(40) not null, price decimal(10.3) not null default 0, is_show bit not null default 1, is_saleoff bit not null default 0 );

在表中插入数据

这里可以继续使用CMD或者使用Navicat的查询窗口操作

insert into goods values(0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default,default); insert into goods values(0,'x550cc 15.6英寸笔记本','笔记本','华硕','2799',default,default); insert into goods values(0,'x240 超极本','超极本','联想','4880',default,default); insert into goods values(0,'u330p 13.3英寸超级本','超极本','联想','4299',default,default); insert into goods values(0,'svp13226scb 触控超级本','超级本','索尼','7999',default,default); insert into goods values(0,'ipad mini 7.9英寸平板电脑','平板电脑','苹果','1999',default,default); insert into goods values(0,'iPad air 9.7英寸平板电脑','平板电脑','苹果','3388',default,default); insert into goods values(0,'iPad mini 配置 retine 显示屏','平板电脑','苹果','2788',default,default); insert into goods values(0,'ideacentre c3340 20英寸一体电脑','台式机','联想','3499',default,default); insert into goods values(0,'vostro 3800-r1206 台式电脑','台式机','戴尔','2899',default,default); insert into goods values(0,'15.6 寸电脑屏保护膜','电脑配件','爱戴尔','29',default,default); insert into goods values(0,'优雅 复古 无线鼠标键盘','电脑配件','雷蛇','299',default,default); insert into goods values(0,'15寸 4K 液晶显示屏','电脑配件','索尼','1899',default,default); insert into goods values(0,'限量款 LOL 鼠标垫','电脑配件','唯爱','29',default,default);

成功插入数据后,数据如图

Egg.js连接数据库

在Egg.js中,框架提供了 egg-mysql 插件来访问 MySQL 数据库。这个插件既可以访问普通的 MySQL 数据库,也可以访问基于 MySQL 协议的在线数据库服务。

安装egg-mysql插件

$ npm i --save egg-mysql

配置插件

在config/plugin.js中新增下列代码:

exports.mysql = { enable: true, package: 'egg-mysql', };

单数据源

如果我们的应用只需要访问一个 MySQL 数据库实例,可以如下配置:

在config/config.default.js中新增config的属性

config.mysql = { // 单数据库信息配置,端口号、密码、用户名等自己修改 client: { // host host: 'localhost', // 端口号 port: '3306', // 用户名 user: 'root', // 密码 password: 'root', // 数据库名 database: 'egg_mock', }, // 是否加载到 app 上,默认开启 app: true, // 是否加载到 agent 上,默认关闭 agent: false, };

多数据源以及其他详细方法

上述没有说到的点,大伙可以看官网文档

使用方法

当我们的插件配置好之后,就在app.mysql里面引用这个变量。如:

class HomeController extends Controller { async index() { const { ctx, app } = this; const res = await app.mysql.select('goods'); ctx.body = res; } }

浏览器输入http://localhost:7001/,看到下图结果就代表成功连接和查询了。

一起做项目

项目计划是:基础 ——> 后端业务 ——> 前端页面,现在在后端模块

PS:全部的代码仓库:https://github.com/hejian1993/node_egg,暂时没有分章节,仅供参考。

我是河粉,我们下一节见

三个月前,一个人关注了我,他娶了一个如花似玉的老婆。 一周前,一个人关注了我,他中了888亿。 今年,关注了我的人都娶了如花似玉的老婆结婚那天还中888亿。 我已开过光,话已经放到这了。

最新回复(0)