如何使用Node操作MySQL数据库

526 阅读4分钟

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

在上面的例子中,我们创建了一个名为 connectionmysql 连接对象,并传递了必要的参数,如主机名、用户名、密码和数据库名称。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!");
});

在上面的例子中,我们创建了一个名为 connectionmysql 连接对象,并传递了必要的参数,如主机名、用户名、密码和数据库名称。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