开发一个项目,就像 ITFun 上的课程、文档等,这些真实数据都是存在数据库中的。这节课,咱们就要来聊一下 MySQL 数据库,以及 Node.js 中,操作数据库最方便的方法。

Why MySQL?

MySQL 数据库是世界上最流行的,用户量最多的开源数据库,没有之一。有哪些知名的项目使用呢?请看图

MySQL知名用户

大家都认识的一些,例如淘宝Twitter腾讯Github谷歌等大量项目都是使用的 MySQL 数据库。其实还有好多好多,基本你能看到的知名互联网项目,90% 以上都是使用的MySQL

之所以使用 MySQL,最主要的原因有几个:

  • 开源
  • 免费
  • 知名用户多,跟着主流走
  • 相对简单易用,教程多

Sequelize 是什么?

Node.js 世界,最简单的操作数据库的方式,是使用 SequelizeSequelize 是一个基于 promiseNode.js ORM,它具有强大的事务支持,关联关系,预读和延迟加载,读取复制等功能。Sequelize,其实除了支持MySQL外,还可以支持以下这些数据库:

  • Postgres
  • MariaDB
  • SQLite
  • Microsoft SQL Server

安装

$ cnpm install sequelize -S
$ cnpm install mysql2 -S
$ cnpm install sequelize-cli -g
$ sequelize init

进入自己项目路径后,需要同时安装 sequelizemysql2。这样才能正常操作 MySQL 数据库。最后,咱们安装了 sequelize-cli,这个和上一集用到的 express-generator 类似,是用来通过命令创建 sequelize 需要的目录和相关代码的。

Tips: 这里安装 sequelize-cli 使用的是 -g 参数,将它安装成全局的了。这样就可以在任意的 Node.js 项目中都直接运行 sequelize 命令,而不用每一个项目都单独安装。

最后一个命令,是初始化项目

目录结构

.
├── config
│   └── config.json
├── migrations
├── models
│   └── index.js
└── seeders

初始化项目后,在项目文件夹中发现又新增了这么多新目录。

  • config配置的意思,这里放的也就是 sequelize 所需要的连接数据库的配置文件。
  • migrations迁移的意思,如果你需要对数据库做新增表修改字段删除表等等操作,就需要在这里添加 迁移文件
  • models 里面存放的是模型文件,我们使用 sequelize 来执行 CURD,也就是 创建、修改、读取、删除数据,就需要用这里的模型了。每个模型都对应数据库中的一张表。
  • seeders,是存放的种子文件。一般会将一些需要添加到数据表的测试数据存在这里。只需要运行一个命令,数据表中就会自动填充进测试内容了。

以上这些东东,我们下一节会一一用到,这一节大家只需要了解,当运行了 sequelize init 以后,生成的目录中有哪些东西就好了。

创建数据库

下面要做的是创建一个 blog 项目所需要的数据库,先来修改下 config/config.json。可以看到这里有三段配置,在不同环境中,程序就会运行不同的配置。

环境 说明
development 开发环境,项目开发时候使用
test 测试环境,项目测试使用
production 生产环境,项目正式上线时使用

咱们现在要做的就是项目开发,当然就是改 development 了。需要设置的是:密码数据库名称

首先来改数据库密码。如果你是 macOS 系统,并且在安装 MySQL 的时候是按照咱们课程走的,那你的密码和我一样,这里填root,不要忘记了外面要加 引号。如果你用的 laragon,它的默认数据库密码是,所以保持 null 就好。

接着要改的是,数据库的名称。一般来说,设置的和项目名称一致就好了,咱们改为 blog_development

"development": {
    "username": "root",
    "password": "root",
    "database": "blog_development",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }

设置完成后,运行命令,创建数据库。

$ sequelize db:create --charset 'utf8mb4'

Tips:

命令的最后面添加了参数,使用 utf8mb4 编码格式,这样咱们存中文到数据库,就不会出现乱码了。

有的同学碰到过,运行这条命令的时候报错。那么也可以直接使用 MySQL客户端 软件,自己手动建库。注意将编码设置为 utf8mb4 就好。

创建数据库

打开 数据库软件,刷新下,发现果然出现了 blog_development 这个数据库。

参考文档

已添加到喜欢了