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

