Deleting Data in MySQL from Node.js

摘要:在本教程中,我们将向您展示如何从 Node.js 应用程序删除 MySQL 数据库中的数据。

要从 Node.js 应用程序删除 MySQL 数据库中的数据,请执行以下步骤:

  1. 建立与 MySQL 数据库的连接
  2. 通过调用Connection对象上的query()方法来执行DELETE语句。
  3. 断开与 MySQL 数据库服务器的连接。

为了建立与 MySQL 数据库服务器的连接,我们将使用以下config.js模块:

let config = {
  host    : 'localhost',
  user    : 'root',
  password: '',
  database: 'todoapp'
};

module.exports = config;
Code language: JavaScript (javascript)

config.js模块包含建立数据库连接所需的信息,包括hostuserpassworddatabase

您需要更改这些值以使其适应 MySQL 数据库服务器的参数。

删除数据示例

以下delete.js程序根据行的id删除todos表中的一行。

let mysql  = require('mysql');
let config = require('./config.js');

let connection = mysql.createConnection(config);

// DELETE statment
let sql = `DELETE FROM todos WHERE id = ?`;

// delete a row with id 1
connection.query(sql, 1, (error, results, fields) => {
  if (error)
    return console.error(error.message);

  console.log('Deleted Row(s):', results.affectedRows);
});

connection.end();
Code language: JavaScript (javascript)

在此示例中,我们在DELETE语句中使用了占位符 (?)。当我们在connection对象上调用query()方法来执行语句时,我们将数据作为第二个参数传递给DELETE语句。占位符将被输入值替换,因此执行查询时id将采用值 1。

DELETE FROM todos WHERE id = 1
Code language: JavaScript (javascript)

请注意,如果有多个占位符,则需要向查询传递一个数组,以将数据传递到 SQL 语句。

要获取已删除的行数,您可以访问results参数的affectedRows属性。

在执行程序之前,我们先检查一下todos表中id为1的行:

>node delete.js
Deleted Row(s): 1
Code language: JavaScript (javascript)

删除的行数为1。您可以使用以下SELECT语句在数据库中验证它:

mysql> SELECT * FROM todos WHERE id = 1;
Empty set (0.00 sec)
Code language: JavaScript (javascript)

如您所见,id 为 1 的行已从todos表中删除。

在本教程中,您学习了如何从 Node.js 应用程序删除 MySQL 中的数据。

本教程有帮助吗?