如何使用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