Краткое руководство. Использование Node.js для отправки запросов к базе данных в службе "База данных SQL Azure" или Управляемом экземпляре SQL Azure

Область применения:База данных SQL Azure Управляемый экземпляр SQL Azure

В этом кратком руководстве вы будете использовать Node.js для подключения к базе данных и запроса данных.

Предварительные требования

Для работы с этим кратким руководством вам понадобится:


Важно!

Скрипты в этой статье предназначены для использования базы данных Adventure Works.

Примечание

Вы также можете использовать Управляемый экземпляр SQL Azure.

Для создания и настройки используйте портал Azure, PowerShell или CLI, затем установите подключение к локальному серверу или виртуальной машине.

Для загрузки данных см. Quickstart: Import a BACPAC file to a database in Azure SQL Database (Краткое руководство. Импорт BACPAC-файла в базу данных с помощью Azure SQL Database), а также сведения о файле Adventure Works или Краткое руководство. Восстановление базы данных в Управляемый экземпляр.

Получение сведений о подключении к серверу

Получите сведения, необходимые для подключения к базе данных в составе Базы данных SQL Azure. Для дальнейших действий вам понадобится полное имя сервера или имя узла, имя базы данных и данные для входа.

  1. Войдите на портал Azure.

  2. Перейдите на страницу Базы данных SQL или Управляемые экземпляры SQL.

  3. На странице Обзор просмотрите полное имя сервера рядом с полем Имя сервера для базы данных в службе "База данных SQL Azure" или полное имя сервера (или IP-адрес) рядом с полем Узел для Управляемого экземпляра SQL Azure или SQL Server в виртуальной машине Azure. Чтобы скопировать имя сервера или имя узла, наведите на него указатель мыши и щелкните значок копирования.

Примечание

Сведения о подключении SQL Server на виртуальной машине Azure см. в разделе Подключение к SQL Server.

Создание проекта

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

npm init -y
npm install tedious

Добавление кода для создания запроса к базе данных

  1. Создайте файл sqltest.js в предпочитаемом текстовом редакторе.

  2. Замените содержимое файла приведенным ниже кодом. Затем добавьте соответствующие значения для сервера, базы данных, пользователя и пароля.

    const { Connection, Request } = require("tedious");
    
    // Create connection to database
    const config = {
      authentication: {
        options: {
          userName: "username", // update me
          password: "password" // update me
        },
        type: "default"
      },
      server: "your_server.database.windows.net", // update me
      options: {
        database: "your_database", //update me
        encrypt: true
      }
    };
    
    /* 
        //Use Azure VM Managed Identity to connect to the SQL database
        const config = {
            server: process.env["db_server"],
            authentication: {
                type: 'azure-active-directory-msi-vm',
            },
            options: {
                database: process.env["db_database"],
                encrypt: true,
                port: 1433
            }
        };
    
        //Use Azure App Service Managed Identity to connect to the SQL database
        const config = {
            server: process.env["db_server"],
            authentication: {
                type: 'azure-active-directory-msi-app-service',
            },
            options: {
                database: process.env["db_database"],
                encrypt: true,
                port: 1433
            }
        });
    
    */
    
    const connection = new Connection(config);
    
    // Attempt to connect and execute queries if connection goes through
    connection.on("connect", err => {
      if (err) {
        console.error(err.message);
      } else {
        queryDatabase();
      }
      connection.close();
    });
    
    connection.connect();
    
    function queryDatabase() {
      console.log("Reading rows from the Table...");
    
      // Read all rows from table
      const request = new Request(
        `SELECT TOP 20 pc.Name as CategoryName,
                       p.name as ProductName
         FROM [SalesLT].[ProductCategory] pc
         JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid`,
        (err, rowCount) => {
          if (err) {
            console.error(err.message);
          } else {
            console.log(`${rowCount} row(s) returned`);
          }
        }
      );
    
      request.on("row", columns => {
        columns.forEach(column => {
          console.log("%s\t%s", column.metadata.colName, column.value);
        });
      });
    
      connection.execSql(request);
    }
    

Примечание

Дополнительные сведения об использовании управляемого удостоверения для проверки подлинности см. в руководстве по доступу к данным посредством управляемого удостоверения.

Примечание

В примере кода используется образец базы данных AdventureWorksLT в службе "База данных SQL Azure".

Выполнение кода

  1. Запустите программу в командной строке.

    node sqltest.js
    
  2. Убедитесь, что возвращены первые 20 строк, и закройте окно приложения.

Дальнейшие действия