介绍
在 Web 开发中,数据持久化是一个必不可少的环节。MySQL 是一款常用的关系型数据库,它可以存储和管理数据。Node.js 是一种非常流行的服务器端 JavaScript 运行环境,它可以与 MySQL 数据库进行交互,实现数据持久化。
本文将介绍在 Node.js 中使用 MySQL 实现数据持久化的技巧,包括连接数据库、创建表、插入数据、查询数据、更新数据和删除数据等操作。
连接数据库
在 Node.js 中,我们可以使用 mysql
模块来连接 MySQL 数据库。首先,我们需要安装 mysql
模块:
npm install mysql
然后,在代码中引入 mysql
模块,使用 createConnection
方法创建一个连接对象:
// javascriptcn.com 代码示例 const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); connection.connect((err) => { if (err) throw err; console.log('Connected to MySQL database!'); });
在上面的代码中,我们创建了一个名为 connection
的连接对象,它包含了 MySQL 数据库的连接信息,如主机名、用户名、密码和数据库名。使用 connect
方法连接到数据库,如果连接失败则会抛出错误。
创建表
在 MySQL 中,我们需要先创建一个表来存储数据。我们可以使用 SQL 语句来创建表,例如:
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255) );
在 Node.js 中,我们可以使用 query
方法执行 SQL 语句来创建表:
connection.query('CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255))', (err, result) => { if (err) throw err; console.log('Table created!'); });
在上面的代码中,我们使用 query
方法执行 SQL 语句,如果执行成功则会输出 Table created!
。
插入数据
在 MySQL 中,我们可以使用 SQL 语句来插入数据,例如:
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'); INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
在 Node.js 中,我们可以使用 query
方法执行 SQL 语句来插入数据:
connection.query("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')", (err, result) => { if (err) throw err; console.log('1 record inserted!'); });
在上面的代码中,我们使用 query
方法执行 SQL 语句,如果执行成功则会输出 1 record inserted!
。
查询数据
在 MySQL 中,我们可以使用 SQL 语句来查询数据,例如:
SELECT * FROM users;
在 Node.js 中,我们可以使用 query
方法执行 SQL 语句来查询数据:
connection.query('SELECT * FROM users', (err, result) => { if (err) throw err; console.log(result); });
在上面的代码中,我们使用 query
方法执行 SQL 语句,如果执行成功则会输出查询结果。
更新数据
在 MySQL 中,我们可以使用 SQL 语句来更新数据,例如:
UPDATE users SET email='new-email@example.com' WHERE name='Alice';
在 Node.js 中,我们可以使用 query
方法执行 SQL 语句来更新数据:
connection.query("UPDATE users SET email='new-email@example.com' WHERE name='Alice'", (err, result) => { if (err) throw err; console.log(result.affectedRows + ' record(s) updated!'); });
在上面的代码中,我们使用 query
方法执行 SQL 语句,如果执行成功则会输出更新的记录数。
删除数据
在 MySQL 中,我们可以使用 SQL 语句来删除数据,例如:
DELETE FROM users WHERE name='Alice';
在 Node.js 中,我们可以使用 query
方法执行 SQL 语句来删除数据:
connection.query("DELETE FROM users WHERE name='Alice'", (err, result) => { if (err) throw err; console.log(result.affectedRows + ' record(s) deleted!'); });
在上面的代码中,我们使用 query
方法执行 SQL 语句,如果执行成功则会输出删除的记录数。
结束连接
最后,我们需要使用 end
方法结束数据库的连接:
connection.end((err) => { if (err) throw err; console.log('Disconnected from MySQL database!'); });
在上面的代码中,我们使用 end
方法结束数据库的连接,如果执行成功则会输出 Disconnected from MySQL database!
。
示例代码
下面是一个完整的示例代码,包括连接数据库、创建表、插入数据、查询数据、更新数据和删除数据等操作:
// javascriptcn.com 代码示例 const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); connection.connect((err) => { if (err) throw err; console.log('Connected to MySQL database!'); connection.query('CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255))', (err, result) => { if (err) throw err; console.log('Table created!'); connection.query("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')", (err, result) => { if (err) throw err; console.log('1 record inserted!'); connection.query('SELECT * FROM users', (err, result) => { if (err) throw err; console.log(result); connection.query("UPDATE users SET email='new-email@example.com' WHERE name='Alice'", (err, result) => { if (err) throw err; console.log(result.affectedRows + ' record(s) updated!'); connection.query("DELETE FROM users WHERE name='Alice'", (err, result) => { if (err) throw err; console.log(result.affectedRows + ' record(s) deleted!'); connection.end((err) => { if (err) throw err; console.log('Disconnected from MySQL database!'); }); }); }); }); }); }); });
总结
在 Node.js 中使用 MySQL 实现数据持久化是非常重要的技能。本文介绍了连接数据库、创建表、插入数据、查询数据、更新数据和删除数据等操作的技巧,并提供了示例代码。希望本文对初学者有所帮助,同时也希望读者能够深入学习和掌握这些技术,用于实际项目中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/650c093a95b1f8cacd61eb56