Avvio rapido: Usare Node.js per eseguire query su un database nel database SQL di Azure o nell'istanza gestita di SQL di Azure

Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure

In questa guida di avvio rapido si userà Node.js per connettersi a un database ed eseguire query sui dati.

Prerequisiti

Per completare l'esercitazione introduttiva, sono necessari gli elementi seguenti:


Importante

Gli script di questo articolo sono scritti in modo da usare il database Adventure Works.

Nota

È anche possibile scegliere di usare un'istanza gestita di SQL di Azure.

Per le operazioni di creazione e configurazione, usare il portale di Azure, PowerShell o l'interfaccia della riga di comando, quindi configurare la connettività dall'ambiente locale o dalla macchina virtuale.

Per caricare i dati, vedere come eseguire il ripristino con BACPAC con il file di Adventure Works oppure come eseguire il ripristino del database Wide World Importers.

Recuperare le informazioni di connessione del server

Recuperare le informazioni di connessione necessarie per connettersi al database nel database SQL di Azure. Nelle procedure successive saranno necessari il nome completo del server o il nome host, il nome del database e le informazioni di accesso.

  1. Accedere al portale di Azure.

  2. Passare alla pagina Database SQL o Istanze gestite di SQL .

  3. Nella pagina Panoramica verificare il nome completo del server accanto a Nome server per il database nel database SQL di Azure o il nome del server completo (o l'indirizzo IP) accanto a Host per un'istanza gestita di SQL di Azure o di SQL Server in una macchina virtuale di Azure. Per copiare il nome del server o il nome host, passare il puntatore su di esso e selezionare l'icona Copia.

Nota

Per le informazioni di connessione per SQL Server in una macchina virtuale di Azure, vedere Connettersi a SQL Server.

Creare il progetto

Aprire un prompt dei comandi e creare una cartella denominata sqltest. Aprire la cartella creata ed eseguire il comando seguente:

npm init -y
npm install tedious

Aggiungere il codice per eseguire query sul database

  1. Nell'editor di testo preferito creare un nuovo file, sqltest.js.

  2. Sostituire il contenuto con il codice seguente. Aggiungere quindi i valori appropriati per il server, il database, l'utente e la password.

    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);
    }
    

Nota

Per altre informazioni sull'uso dell'identità gestita per l'autenticazione, completare l'esercitazione per accedere ai dati tramite identità gestita.

Nota

L'esempio di codice usa il database di esempio AdventureWorksLT nel database SQL di Azure.

Eseguire il codice

  1. Al prompt dei comandi eseguire il programma.

    node sqltest.js
    
  2. Verificare che vengano restituite le prime 20 righe e chiudere la finestra dell'applicazione.

Passaggi successivi