Краткое руководство. Использование Node.js для отправки запросов к базе данных в службе "База данных SQL Azure" или Управляемом экземпляре SQL Azure
Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure
В этом кратком руководстве вы будете использовать Node.js для подключения к базе данных и запроса данных.
Необходимые компоненты
Для работы с этим кратким руководством вам понадобится:
Учетная запись Azure с активной подпиской и базой данных в База данных SQL Azure, Управляемый экземпляр SQL Azure или SQL Server на виртуальной машине Azure. Создайте учетную запись бесплатно .
Действие База данных SQL Управляемый экземпляр SQL SQL Server на виртуальной машине Azure Создание Портал Портал Портал CLI Bicep PowerShell PowerShell PowerShell Настройка Правило брандмауэра для IP-адресов на уровне сервера Подключение из виртуальной машины Подключение из локальной сети Подключение к экземпляру SQL Server Загрузка данных Импортированные в широкий мир импортеры, загруженные на краткое руководство Восстановление базы данных Wide World Importers Восстановление базы данных Wide World Importers Восстановление или импорт AdventureWorks из BACPAC-файла из GitHub Восстановление или импорт AdventureWorks из BACPAC-файла из GitHub Программное обеспечение, связанное с Node.js
Установите Node.js и установите драйвер ODBC, выполнив действия по установке драйвера Microsoft ODBC для SQL Server (macOS).
Внимание
Скрипты, приведенные в этой статье, записываются для использования базы данных AdventureWorks .
Получение сведений о подключении к серверу
Получите сведения, необходимые для подключения к базе данных. Вам потребуется полное имя сервера или имя узла, имя базы данных и сведения о входе для предстоящих шагов.
Войдите на портал Azure.
Перейдите на страницу Базы данных SQL или Управляемые экземпляры SQL.
На странице Обзор просмотрите полное имя сервера рядом с полем Имя сервера для базы данных в службе "База данных SQL Azure" или полное имя сервера (либо IP-адрес) рядом с полем Узел для Управляемого экземпляра SQL Azure или сервера SQL Server на виртуальной машине Azure. Чтобы скопировать имя сервера или имя узла, наведите на него указатель мыши и щелкните значок копирования.
Примечание.
Сведения о подключении для сервера SQL Server на виртуальной машине Azure см. в этой статье.
Создание проекта
Откройте командную строку и создайте папку с именем sqltest. Откройте созданную папку и выполните следующую команду:
npm init -y
npm install mssql
Добавление кода для создания запроса к базе данных
В избранном текстовом редакторе создайте файл sqltest.js в папке, в которой вы создали проект (sqltest).
Замените содержимое файла приведенным ниже кодом. Затем добавьте соответствующие значения для сервера, базы данных, пользователя и пароля.
const sql = require('mssql'); const config = { user: 'username', // better stored in an app setting such as process.env.DB_USER password: 'password', // better stored in an app setting such as process.env.DB_PASSWORD server: 'your_server.database.windows.net', // better stored in an app setting such as process.env.DB_SERVER port: 1433, // optional, defaults to 1433, better stored in an app setting such as process.env.DB_PORT database: 'AdventureWorksLT', // better stored in an app setting such as process.env.DB_NAME authentication: { type: 'default' }, options: { encrypt: true } } /* //Use Azure VM Managed Identity to connect to the SQL database const config = { server: process.env["db_server"], port: process.env["db_port"], database: process.env["db_database"], authentication: { type: 'azure-active-directory-msi-vm' }, options: { encrypt: true } } //Use Azure App Service Managed Identity to connect to the SQL database const config = { server: process.env["db_server"], port: process.env["db_port"], database: process.env["db_database"], authentication: { type: 'azure-active-directory-msi-app-service' }, options: { encrypt: true } } */ console.log("Starting..."); connectAndQuery(); async function connectAndQuery() { try { var poolConnection = await sql.connect(config); console.log("Reading rows from the Table..."); var resultSet = await poolConnection.request().query(`SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid`); console.log(`${resultSet.recordset.length} rows returned.`); // output column headers var columns = ""; for (var column in resultSet.recordset.columns) { columns += column + ", "; } console.log("%s\t", columns.substring(0, columns.length - 2)); // ouput row contents from default record set resultSet.recordset.forEach(row => { console.log("%s\t%s", row.CategoryName, row.ProductName); }); // close connection only when we're certain application is finished poolConnection.close(); } catch (err) { console.error(err.message); } }
Примечание.
Дополнительные сведения об использовании управляемого удостоверения для проверки подлинности см. в руководстве по доступу к данным посредством управляемого удостоверения. Сведения о параметрах конфигурации Tedious для идентификатора Microsoft Entra (ранее — Azure Active Directory) доступны в документации tedious.
Выполнение кода
Запустите программу в командной строке.
node sqltest.js
Убедитесь, что возвращены первые 20 строк, и закройте окно приложения.