Node.js SQL Server: Удалить

В этом руководстве вы узнаете, как удалить данные из таблицы SQL Server из приложения Node.js.

Этот урок начинается с того места, где закончился урок по пагинации в Node.js.

Удаление автора по ID

Шаг 1. Создайте новый файл с именем delete.js в каталоге проекта:

Шаг 2. Определите новую функцию с именем deleteAuthorById в файле delete.js:

import sql from 'mssql';
import { config } from './config.js';
const deleteAuthorById = async(id) => {
  try {
    // Connect to the database
    const pool = await sql.connect(config);
    // Execute the query
    const result = await pool
      .request()
      .input('id', sql.Int, id)
      .query(`DELETE  FROM Authors WHERE AuthorID = @id`);
    if(result?.rowsAffected?.length >= 1) {
      console.log(`${result.rowsAffected.length} row(s) deleted!`);
    }
  } catch(err) {
    console.error(err);
  }
};
export { deleteAuthorById };

Как это работает.

Сначала импортируйте объект SQL из пакета mssql и объект конфигурации из модуля config.js:

import sql from 'mssql';
import { config } from './config.js';

Пакет mssql предоставляет API для взаимодействия с SQL Server. Конфигурация — это объект, содержащий параметры базы данных для подключения.

Во-вторых, подключитесь к базе данных, используя предоставленный объект конфигурации:

const pool = await sql.connect(config);

Функция sql.connect() возвращает объект ConnectionPool, который позволяет выполнять запросы.

В-третьих, выполните оператор DELETE:

const result = await pool
  .request()
  .input('id', sql.Int, id)
  .query(`DELETE  FROM Authors WHERE AuthorID = @id`);

В этом заявлении:

  • pool.request() создает новый экземпляр запроса, представляющий один запрос, который вы хотите выполнить к базе данных.
  • input('id', sql.Int, id) определяет идентификатор с типом sql.Int, а значением является id.
  • .query(`DELETE FROM Authors WHERE AuthorID = @id`) выполняет оператор DELETE с входным параметром id.

В-четвертых, покажите количество удаленных строк:

if(result?.rowsAffected?.length >= 1) {
  console.log(`${result.rowsAffected.length} row(s) deleted!`);
}

В-пятых, если произошла ошибка, отобразите сообщение об ошибке в блоке catch:

console.error(err);

Шаг 3. Экспортируйте функцию deleteAuthorById():

export { deleteAuthorById };

Шаг 4. Измените файл index.js, чтобы использовать функцию deleteAuthorById:

import { deleteAuthorById } from './delete.js';
deleteAuthorById(5);

Как это работает.

Сначала импортируйте deleteAuthorById из модуля delete.js:

import { deleteAuthorById } from './delete.js';

Во-вторых, удалите автора с идентификатором 5, вызвав функцию deleteAuthorById:

deleteAuthorById(5);

Шаг 5. Откройте терминал и выполните следующую команду:

npm start

Если вы видите следующее сообщение, это означает, что программа успешно удалила автора с идентификатором 5:

1 row(s) deleted!

Чтобы удалить нескольких авторов, вы можете перебрать список идентификаторов и вызвать функцию deleteAuthorById(), чтобы удалить каждого по отдельности. Например:

const ids = [7, 8, 12];
for(const id of ids) {
  deleteAuthorById(id);
}

Загрузите исходный код проекта

Загрузите исходный код проекта

Краткое содержание

  • Выполните оператор DELETE в приложении Node.js, используя метод query(), чтобы удалить строку из таблицы.
Мирослав С.

Автор статей, ИБ-специалист