В этом руководстве вы узнаете, как удалить данные из таблицы 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(), чтобы удалить строку из таблицы.