如何使用Node操作MySQL数据库
在Node.js中,我们可以使用许多模块来操作MySQL数据库。其中最常用的模块是 mysql 。这个模块提供了一些简单的API,可以方便地连接和操作MySQL数据库。
首先我们要先安装npm包 :
安装npm包
npm install --save mysql
导入npm包
其次要在我们的项目中引入我们的npm包
// 引入mysql包
var mysql = require('mysql');
连接数据库
创建连接:连接MySQL数据库是使用 mysql 模块中最基本的操作之一。在连接MySQL之前,我们需要了解一些数据库连接所需的参数,如主机名、用户名、密码和数据库名称等。这些参数需要通过创建一个 mysql 连接对象来传递给数据库。
// 创建连接
var connection = mysql.createConnection({
host : 'localhost', //本机
user : 'me', //账号root
password : 'secret', //密码12345
database : 'my_db' //数据库名
});
// 连接数据库 (打开冰箱门)
connection.connect();
在上面的例子中,我们创建了一个名为 connection 的 mysql 连接对象,并传递了必要的参数,如主机名、用户名、密码和数据库名称。connection.connect() 方法用于连接数据库.
查询数据
查询数据是使用 mysql 模块中最常见的操作之一。下面是一个简单的查询示例,它将从一个名为 customers 的表中获取所有数据,并在控制台中输出它们:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase'
});
connection.connect(function(err) {
if (err) throw err;
console.log("Connected to MySQL database!");
connection.query("SELECT * FROM customers", function (err, result, fields) {
if (err) throw err;
console.log(result);
});
});
在上面的例子中,我们使用了 connection.query() 方法来执行一个SQL查询语句。在查询完成后,回调函数 function (err, result, fields) 将被调用。其中 result 参数包含查询结果的所有行。
接下来,让我们来看一下如何使用 mysql 模块来实现常见的MySQL数据库操作。
连接数据库
连接MySQL数据库是使用 mysql 模块中最基本的操作之一。在连接MySQL之前,我们需要了解一些数据库连接所需的参数,如主机名、用户名、密码和数据库名称等。这些参数需要通过创建一个 mysql 连接对象来传递给数据库。
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase'
});
connection.connect(function(err) {
if (err) throw err;
console.log("Connected to MySQL database!");
});
在上面的例子中,我们创建了一个名为 connection 的 mysql 连接对象,并传递了必要的参数,如主机名、用户名、密码和数据库名称。connection.connect() 方法用于连接数据库,并在连接成功后输出一条成功信息。
查询数据
查询数据是使用 mysql 模块中最常见的操作之一。下面是一个简单的查询示例,它将从一个名为 customers 的表中获取所有数据,并在控制台中输出它们:
// 查询数据
connection.query('SELECT * FROM customers', function (error, results, fields) {
if (error) throw error;
console.log(results);
});
在这个示例中,我们使用了 ? 占位符来代替SQL查询语句中的变量,并将变量值作为一个数组参数传递给 query 方法。这样可以避免SQL注入攻击。
插入数据
插入数据是使用 mysql 模块中的另一个常见操作。下面是一个示例,它将向一个名为 customers 的表中插入一行数据:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase'
});
connection.connect(function(err) {
if (err) throw err;
console.log("Connected to MySQL database!");
var sql = "INSERT INTO customers (name, email) VALUES ('John Doe', 'john@example.com')";
connection.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
});
在上面的例子中,我们使用了 connection.query() 方法来执行一个SQL插入语句。在插入完成后,回调函数 function (err, result) 将被调用。其中 result 参数包含了插入操作的结果。
更新数据
更新数据用于修改现有数据。下面是一个示例,它将更新一个名为 customers 的表中的一行数据:
// 更新数据
const customerId = 1;
const updatedCustomer = { email: 'john.doe@example.com' };
connection.query('UPDATE customers SET ? WHERE id = ?', [updatedCustomer, customerId], function (error, results, fields) {
if (error) throw error;
console.log('Customer updated:', results.changedRows);
});
在这个示例中,我们创建了一个包含要更新的数据的对象,并将其作为第一个参数传递给 query 方法。我们还使用 ? 占位符将要更新的行的ID作为第二个参数传递。在更新完成后,我们将受影响的行数打印到控制台中。
删除数据
删除数据用于从数据库中删除数据。下面是一个示例,它将从一个名为 customers 的表中删除一行数据:
javascriptCopy code
// 删除数据
const customerId = 1;
connection.query('DELETE FROM customers WHERE id = ?', [customerId], function (error, results, fields) {
if (error) throw