上文 介绍了 Koa
的基本使用,本文开始介绍数据库的连接。
MySQL
基本概念
数据库按照数据结构分类可以分为以下两类:
1、关系型数据库(RDBMS
):使用表格形式存储数据,数据之间有明确的关系,例如:MySQL、Oracle、SQL Server、PostgreSQL 等。
2、非关系型数据库(NoSQL
):不使用表格形式存储数据,而是使用键值对、文档、列式存储或图形结构等,例如:Redis、MongoDB、Cassandra、Neo4j 等。
本文使用的数据库是 MySQL
,采用 Sequelize 库来操作数据库。 Sequelize
是一个基于 JavaScript
的 ORM
(对象关系映射)库,用于在 Node.js
环境中与数据库进行交互。ORM
(对象关系映射)是一种编程技术,通过将对象和数据库之间建立映射关系,以更直观的方式进行数据库操作。 Sequelize
通过将数据库记录映射为模型对象,使得开发人员可以使用 JavaScript
对象的方法和属性来进行数据库的增删改查操作,而不需要编写复杂的 SQL
查询语句。
MySQL 连接
数据库下载
原本是直接下载的MySQL
,使用 Navicate
可以连接成功,但是 Sequelize
却连接不上,配置的域名是 localhost
,连接时候报错说 127.0.0.1:3306
拒绝连接或者超时,按照网上的各种解决方案试了都没法连接成功,不知道是不是哪里的配置有问题,有木有哪位小伙伴遇到过 T^T,最后就卸载了 MySQL
,下载了 XAMPP
。
XAMPP
(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。直接官网下载,按照默认设置安装即可。MySQL
使用的端口是 3306,如果本地已经有应用占用了该端口的话就需要修改下端口,可参考XAMPP 最详细的安装及使用教程(图文)。运行起来后,发现 phpMyAdmin
连接不上数据库,需要修改下 phpMyAdmin
的配置文件,填上你的数据库密码和端口,具体可以参考在已安装 mysql 的基础上安装 xampp,打开 phpadmin 报错。
数据库连接
1、打开 phpMyAdmin
,创建一个新的数据库,库名为 book
。
2、安装 Sequelize
npm install sequelize
3、我们要连接的数据库是 MySQL
,所以还需要安装下 MySQL
的驱动 mysql2
:
npm install mysql2
4、创建数据库连接
先在项目根目录下创建文件 /config/config.js
,保存数据库的基本信息:
module.exports = {
database: {
dbName: "book", // 数据库名称
host: "localhost", // 数据库域名
port: "3306", // 数据库端口
user: "root", // 数据库连接用户名
password: "123456", // 数据库连接用户密码
},
}
然后再创建文件 /core/db.js
,用来创建数据库连接:
const { Sequelize } = require("sequelize");
const { dbName, host, port, user, password } = require("../config/config").database;
const sequelize = new Sequelize(dbName, user, password, {
dialect: "mysql",
host,
port,
logging: true,
timezone: "+08:00", // sequelize设置的时间要加上8小时才等于北京时间
define: {
timestamps: true, // 是否自动生成createdAt updatedAt 字段
paranoid: true, // 该字段设置为true,会生成deletedAt字段
underscored: true, // 将驼峰统一转化为下划线
},
});
// 是否强制删除表,只能在开发环境下设置为true,在你的数据库已经有数据的情况下,设置为true,重新运行代码的时候会强制性的删除原有的表重新生成新的,数据都会丢失
sequelize.sync({
force: false,
});
module.exports = {
sequelize,
};
数据库准备完毕,下一篇 我们定义数据表结构~