Inicio rápido: Uso de Node.js para consultar una base de datos de Azure SQL Database o Instancia administrada de Azure SQL

SE APLICA A: Azure SQL Database Azure SQL Managed Instance

En este inicio rápido, se usa Node.js para conectarse a una base de datos y consultar los datos.

Requisitos previos

Para completar este inicio rápido necesita instalar:


Importante

Los scripts de este artículo se escriben para utilizar la base de datos Adventure Works.

Nota

También puede elegir una instancia administrada de Azure SQL.

Para crearlo y configurarlo, use Azure Portal, PowerShello la CLI y, después, configure una conectividad local o de máquina virtual.

Para cargar los datos, consulte la restauración con BACPAC con el archivo Adventure Works o consulte la restauración de la base de datos de Wide World Importers.

Obtención de información de conexión del servidor

Obtenga la información de conexión necesaria para conectarse a la base de datos de Azure SQL Database. En los procedimientos siguientes, necesitará el nombre completo del servidor o nombre de host, el nombre de la base de datos y la información de inicio de sesión.

  1. Inicie sesión en Azure Portal.

  2. Vaya a las páginas Bases de datos SQL o Instancias administradas de SQL.

  3. En la página Información general, revise el nombre completo del servidor junto a Nombre del servidor para una base de datos de Azure SQL Database o el nombre completo (o la dirección IP) del servidor junto a Host para una instancia administrada de Azure SQL o SQL Server en la máquina virtual de Azure. Para copiar el nombre del servidor o nombre de host, mantenga el cursor sobre él y seleccione el icono Copiar.

Nota

Para obtener información de la conexión de SQL Server en una máquina virtual de Azure, consulte Conexión a SQL Server.

Creación del proyecto

Abra un símbolo del sistema y cree una carpeta denominada sqltest. Abra la carpeta que ha creado y ejecute el comando siguiente:

npm init -y
npm install tedious

Adición de código para consultar la base de datos

  1. En el editor de texto, cree un archivo, sqltest.py.

  2. Reemplace su contenido por el código siguiente. Agregue los valores apropiados para el servidor, la base de datos, el usuario y la contraseña.

    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.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

Para más información sobre el uso de una identidad administrada para la autenticación, complete Tutorial: Protección de la conexión con Azure SQL Database desde App Service mediante una identidad administrada.

Nota

El ejemplo de código usa la base de datos de ejemplo AdventureWorksLT en Azure SQL Database.

Ejecución del código

  1. En el símbolo del sistema, ejecute el programa.

    node sqltest.js
    
  2. Compruebe que se han devuelto las 20 primeras filas y cierre la ventana de la aplicación.

Pasos siguientes