在本教程中,我们将通过创建连接并执行SQL查询以执行CRUD(创建,读取,更新和删除)操作,学习如何在Node.js中使用MySQL 。
MySQL是领先的开源数据库管理系统。它是一个多用户,多线程的数据库管理系统。MySQL在网络上特别流行。该 node.js中是构建服务器端应用程序的完整平台。
确保您的计算机上安装了MySQL。您可以从https://www.mysql.com/downloads/下载免费的MySQL数据库 。
设置MySQL数据库
确保已在计算机中安装了MySQL数据库。
使用以下命令创建数据库:
create database demo;
使用下面的SQL脚本在“ demo ”数据库中创建 todos 表:
CREATE TABLE `todos` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 ;
1.创建一个Node.js项目
让我们开始创建我们的node.js项目。首先,使用以下命令为您的项目创建一个文件夹:
$ mkdir node-mysql-crud-tutorial
转到应用程序的根文件夹,然后键入npm init以使用package.json文件初始化您的应用程序。
$ cd node-mysql-crud-tutorial
$ npm init -y
这将创建一个具有默认值的package.json:
{ "name": "nodejs-mysql-crud-tutorial", "version": "1.0.0", "description": "NodeJS + MySQL CRUD Example Tutorial", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "NodeJs", "MySQL", "CRUD" ], "author": "Ramesh Fadatare", "license": "ISC", "dependencies": { "mysql": "^2.18.1" } }
2.安装MySQL驱动程序
要下载并安装“ mysql”模块,请打开“命令终端”并执行以下命令:
$npm install mysql --save
现在,您已经下载并安装了MySQL数据库驱动程序。
Node.js可以使用此模块来操作MySQL数据库:
var mysql = require('mysql');
3.执行CRUD操作
CRUD代表创建,读取,更新和删除,它指的是大多数数据驱动的应用程序中使用的常见操作。
- 我们使用INSERT语句在数据库表中创建数据。
- 我们使用SELECT语句从数据库表中读取数据。
- 我们使用UPDATE语句更新数据库表中的数据。
- 我们使用DELETE语句从数据库表中删除数据。
3.1创建/插入数据
让我们创建一个名为“ insert-record.js”的文件,并向其中添加以下代码:
const mysql = require('mysql');
// connection configurations
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'demo'
});
// connect to database
connection.connect(function (err) {
if (err) throw err
console.log('You are now connected with mysql database...')
});
let params = {
name: "Todo 1",
description: "Todo 1 description"
}
connection.query("INSERT INTO todos SET ? ", params,
function (error, results, fields) {
if (error) throw error;
console.log("Record inserted");
});
使用以下命令运行以上代码:
$ node .\insert-record.js
You are now connected with mysql database...
Record inserted
3.2读取/选择数据
让我们创建一个名为“ read-record.js”的文件,并向其中添加以下代码:
const mysql = require('mysql');
// connection configurations
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'demo'
});
// connect to database
connection.connect(function (err) {
if (err)
throw err
console.log('You are now connected with mysql database...')
});
// Retrieve and return all todos from the database.
connection.query('select * from todos',
function (error, results, fields) {
if (error)
throw error;
console.log(JSON.stringify(results));
});
使用以下命令运行以上代码:
$ node .\read-record.js
You are now connected with mysql database...
[{"id":2,"name":"Learn Advanced Express.js ","description":"Learn Advanced Express.js with examples"},{"id":3,"name":"Todo 2","description":"Todo 2 description"},{"id":5,"name":"Todo 1","description":"Todo 1 description"}]
3.3更新数据
让我们创建一个名为“ update-record.js”的文件,并向其中添加以下代码:
const mysql = require('mysql');
// connection configurations
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'demo'
});
// connect to database
connection.connect(function (err) {
if (err)
throw err
console.log('You are now connected with mysql database...')
});
let params = {
name: "Todo 2",
description: "Todo 2 description"
}
connection.query('UPDATE `todos` SET `name`=?,`description`=? where `id`=?',
[params.name, params.description, 3],
function (error, results, fields) {
if (error)
throw error;
console.log("Record updated!");
});
使用以下命令运行以上代码:
$ node .\update-record.js
You are now connected with mysql database...
Record updated!
3.4删除数据
让我们创建一个名为“ delete-record.js”的文件,并向其中添加以下代码:
const mysql = require('mysql');
// connection configurations
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'demo'
});
// connect to database
connection.connect(function (err) {
if (err)
throw err
console.log('You are now connected with mysql database...')
});
let params = {
name: "Todo 1",
description: "Todo 1 description"
}
connection.query(
'DELETE FROM todos where id = ?', [3], (err, result) => {
if (err)
throw err;
console.log(result);
}
);
使用以下命令运行以上代码:
$ node .\delete-record.js
You are now connected with mysql database...
OkPacket {
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
结论
在本教程中,您创建了一个简单的CRUD示例,该示例演示了如何通过SQL select,insert,update和delete语句执行基本的创建,读取,更新和删除操作。