Node.js数据持久化-MySql数据库的应用

331 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

前言

上集咱们介绍了Nodejs的数据持久化之读写操作,这集介绍Noejs中mysql的持久化,它适用于大批量且又复杂的数据模型,增删改查是它的一部分特性,相对于本地存储的要强很多。

MySQL的安装

  • 安装
  1. 首先进入官网下载安装包

官方地址 www.mysql.com/ 选择如下downloads并下滑选择下载:

1654871552645.jpg

点击Mysql进入

1654871610696.png

  1. 找到下图指示地方找到MSI安装 在Select Openatting System中选择Microsoft Windows更改系统选项,最后选择右下角的下载按钮

image.png

  1. 下载好后,打开安装包安装 请选择自定义安装Custom按钮,点击下一步;设置安装路径和数据存放地址时,请选择对应的版本Mysql server 8.0.20 -x64 版本;在右下角有设置安装路径和数据存放路径按钮,建议在安装文件夹下新建data文件夹用于存放数据安装位置和数据存放位置在同一目录
  2. 加密方式和服务器名称 请选择下面的加密方式use legacy Authentication Method方式,如果选择上边的话后气连接数据库会报加密错误;设置密码之后进入到设置服务名称,在Windows Service Name 中设置默认名称就可以

除了上述描述需要操作外,其他的步骤一直点下一步即可

MySQL的配置

安装模块

配置之前安装Mysql模块,npm命令:

npm i mysql --save

连接配置

  1. 运行 mysql数据库历史悠久,但是运行时也会产生一些问题,在运用时**推荐使用Promise风格接口(mysql2.js)**mysql2库里面所有的接口,创建自执行函数,以async方式写入
(async () => {})()
  1. 配置 引入mysql2/promise库,并连接配置,其中:passworddatabase为修改密码和数据库名称
const mysql = require('mysql2/promise');
const cfg = {
  host: "localhost",
  user: "root",
  password: "example",
  database: "mysql"
};
  1. 连接 通过createConnection和数据库进行连接
const connection = await mysql.createConnection(cfg);
  1. 创建表 创建之前通过conn.query查询,是否有重复,如果有则改名创建!
const CREATE_SQL = `CREATE TABLE IF NOT EXISTS test (
  id INT NOT NULL AUTO_INCREMENT,
  message VARCHAR(45) NULL,
  PRIMARY KEY (id))`;
  const SELECT_SQL = `SELECT * FROM test`;
 
  await connection.execute(INSERT_SQL, ['abc']);
  1. 插入 通过insert info user ()语句,插入数据,如果插入成功则,Promise返回**affectedRows的值为1**,否则为写入失败
cfg.query(INSERT_SQL, "hello,world", (err, result) => {
    if(err){return}
    //插入成功
})