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:
Una cuenta de Azure con una suscripción activa y una base de datos en Azure SQL Database, Azure SQL Managed Instance o VM con SQL Server en Azure. Cree una cuenta gratuita.
Acción SQL Database Instancia administrada de SQL SQL Server en máquina virtual de Azure Crear Portal Portal Portal CLI Bicep PowerShell PowerShell PowerShell Configuración Regla de firewall de IP en el nivel de servidor Conectividad desde una máquina virtual Conectividad desde un entorno local Conexión a una instancia de SQL Server Carga de datos Wide World Importers cargado por inicio rápido Restauración de World Wide Importers Restauración de World Wide Importers Restauración o importación de AdventureWorks desde un archivo BACPAC desde GitHub Restauración o importación de AdventureWorks desde un archivo BACPAC desde GitHub Software relacionado con Node.js
Instale Node.js y, a continuación, instale el controlador ODBC siguiendo los pasos descritos en Instalación del controlador ODBC de Microsoft para SQL Server (macOS).
Importante
Los scripts de este artículo se escriben para utilizar la base de datos AdventureWorks.
Obtención de información de conexión del servidor
Obtenga la información de conexión que necesita para conectarse a la base de datos. En los pasos 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.
Inicie sesión en Azure Portal.
Vaya a las páginas SQL Databases o SQL Managed Instance.
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 mssql
Adición de código para consultar la base de datos
En el editor de texto que prefiera, cree un nuevo archivo, sqltest.js, en la carpeta donde creó el proyecto (sqltest).
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 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); } }
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. Los detalles sobre las opciones de configuración de Tedious para Microsoft Entra ID (anteriormente conocido como Azure Active Directory) están disponibles en la documentación de Tedious.
Ejecución del código
En el símbolo del sistema, ejecute el programa.
node sqltest.js
Compruebe que se han devuelto las 20 primeras filas y cierre la ventana de la aplicación.