Web-使用NodeJS连接MySQL

介绍

        为了方便地访问和存储数据,我们应该将数据存储并保持易于访问。这种存储方式应该是高效、快速和可靠的。我们使用数据库的原因是因为相较于访问文件,数据库的访问速度更快,特别是在数据量增加的情况下。此外,它还允许我们在无需阅读整个文档的情况下定位信息。鉴于本单元对基于SQL的数据库的关注,我们将深入研究MySQL。

        以下章节将讨论如何在NodeJS上安装MySQL并使用MySQL模块。接下来,我们将深入探讨如何在MySQL数据库中创建、插入/更新和删除数据。如果您对PostgreSQL和MongoDB感兴趣,请查看关于这些主题的可选部分。

安装MySQL

        MySQL是由Oracle开发的一种关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。在本节中,我们将看到如何在Windows平台上安装MySQL。

        MySQL仅适用于Microsoft Windows 64位操作系统。有关支持的Windows平台信息,请参阅 https://www.mysql.com/support/supportedplatforms/database.html。

        在Microsoft Windows上安装MySQL有不同的方法。如果您想在Windows环境中安装MySQL,使用MySQL安装程序是最简单的方法。MySQL安装程序为您提供了一个易于使用的向导,帮助您安装MySQL以及以下组件:

  •         MySQL Server
  •         所有可用的连接器
  •         带有样本数据模型的MySQL Workbench
  •         适用于Excel和Microsoft Visual Studio的MySQL通知工具
  •         MySQL样本数据库
  •         MySQL文档

        要下载MySQL安装程序,请访问以下链接http://dev.mysql.com/downloads/installer/。

        要使用MySQL安装程序安装MySQL,请双击MySQL安装程序文件并按照说明进行操作。

        要在MacOS上安装MySQL,请参阅以下链接:https://dev.mysql.com/doc/refman/5.7/en/macos-installation-pkg.html

        在Windows上安装MySQL的视频:https://www.youtube.com/watch?v=OM4aZJW_Ojs

        在MacOS上安装MySQL的视频:https://www.youtube.com/watch?v=-BDbOOY9jsc

在 MySQL 上创建数据库

        可以使用 CREATE DATABASE 语句创建新的 SQL 数据库。

CREATE DATABASE `testDB` ;

        创建数据库后,必须显式选择数据库以供使用。您可以使用语句“use testDB;”使testDB成为当前数据库。

USE testDB;

        CREATE TABLE 语句可用于在数据库中创建新表。

CREATE TABLE Persons(
  id int(5),
  name varchar(50),
  suburb varchar(50),
  city varchar(50),
  PRIMARY KEY (id)
);

        可以使用INSERT INTO命令将新记录插入到Persons表中。

INSERT INTO Persons(id, name, city) VALUES
(1, 'John', 'Hawthorn', 'Melbourne'),
(2, 'Jane', 'Paramatta', 'Sydney')
(3, 'Tom', 'CBD', 'Brisbane');

在 NodeJS 上使用 MySQL 模块

        本节演示如何安装 mysql 模块,这是一个用于 MySQL 的 JavaScript 客户端。在本模块中,您将学习如何使用 MySQL 模块连接到 MySQL 数据库并执行通常的 CRUD 操作。在继续之前,请确保您有权访问 MySQL 数据库。

        访问MySQL数据库后,打开Powershell或终端并创建一个新文件夹。

mkdir databaseMysql

        然后,导航到新创建的文件夹,并使用以下命令创建一个新项目,该命令将创建一个 package.json 文件

npm init -y

        然后,安装 mysql 模块。

npm install mysql2

        下面的代码导入 mysql 模块。请注意,mysql 和 mysql2 几乎相同,只是 mysql2 更兼容 API,这在以下部分中非常有用。

const mysql = require('mysql2');

        以下代码创建与 MySQL 数据库的连接。此脚本包含一个连接变量以及 MySQL 数据库的配置,其中包括用于连接的主机、端口、用户(mysql 连接的用户名)、密码(用于 mysql 连接)和数据库(我们要连接到的数据库节点应用程序)。系统中的默认 Mysql 数据库端口为 3306。此代码将在下面的视频中进一步演示。

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'user',
  password: 'password',
  database: 'testDB'
});

        然后,我们将在应用程序和 MySQL 之间建立连接。因此,我们必须在上面已经定义的连接变量上调用 connect 函数。

connection.connect((err) => {
  if (err) throw err;
  console.log('Connected!');
});

        成功建立连接后,控制台中应显示“已连接”消息。如果发生故障(例如,输入了错误的密码),则会触发回调,该回调将传递 JavaScript Error 对象 (err) 的实例。

 

读取数据库

        为了从数据库中读取数据,我们必须调用一个名为 query 的函数并提供一个 SQL 查询作为参数。

connection.query('SELECT * FROM Persons', (err,rows) => {
  if(err) throw err;
  console.log('Data received from Db:');
  console.log(rows);
  rows.forEach( (row) => {
    console.log(`${row.LastName} lives in ${row.City}`);
})
});

创建/将数据插入数据库

        调用 query() 并发送相应的 SQL 语句以插入数据,如下所示。

const person = { PersonID: 220, LastName: 'Craig', FirstName: 'Buckler', Address: 'Burwood', city: 'London' };
connection.query('INSERT INTO Persons SET ?', person, (err, res) => {
  if(err) throw err;
  console.log('Last insert ID:', res.insertId);
});

更新

        要更新数据库表,我们需要使用 query() 函数并发送必要的 SQL 语句,如下所示。已更改的行数可以通过使用 result.changedRows 获取

connection.query(
  'UPDATE Persons SET City = ? Where PersonID = ?',
  ['Sydney', 221],
  (err, result) => {
    if (err) throw err;
    console.log(`Changed ${result.changedRows} row(s)`);
  }
);

删除

        要从数据库表中删除数据,我们需要使用 query() 函数并发送必要的 SQL 语句,如下所示。

connection.query(
  'DELETE FROM Persons WHERE PersonID = ?', [221], (err, result) => {
    if (err) throw err;

    console.log(`Deleted ${result.affectedRows} row(s)`);
  }
);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yamai Yuzuru

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值