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:
Account Azure con una sottoscrizione attiva e un database in database SQL di Azure, Istanza gestita di SQL di Azure o SQL Server in una macchina virtuale di Azure. Creare un account gratuitamente.
Azione Database SQL Istanza gestita di SQL SQL Server in una macchina virtuale Azure Creazione Portale Portale Portale CLI Bicep PowerShell PowerShell PowerShell Configurare Regola del firewall IP a livello di server Connettività da una VM Connettività dall'ambiente locale Connettersi a un'istanza di SQL Server Caricare i dati Caricamento di Wide World Importers per l’avvio rapido Ripristinare Wide World Importers Ripristinare Wide World Importers Ripristinare o importare i dati di AdventureWorks dal file BACPAC ottenuto da GitHub Ripristinare o importare i dati di AdventureWorks dal file BACPAC ottenuto da GitHub Software correlato a Node.js
Installare Node.js, quindi il driver ODBC seguendo le istruzioni riportate in Installare il driver Microsoft ODBC per SQL Server (macOS).
Importante
Gli script di questo articolo sono scritti in modo da usare il database AdventureWorks.
Recuperare le informazioni di connessione del server
Ottenere le informazioni di connessione necessarie per connettersi al database. Nelle procedure successive saranno necessari il nome completamente qualificato del server o il nome host, il nome del database e le informazioni di accesso.
Accedere al portale di Azure.
Passare alla pagina Database SQL o Istanze gestite di SQL.
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 mssql
Aggiungere il codice per eseguire query sul database
Nell'editor di testo preferito creare il nuovo file sqltest.js nella cartella in cui è stato creato il progetto (sqltest).
Sostituire il contenuto con il codice seguente. Aggiungere quindi i valori appropriati per il server, il database, l'utente e la password.
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
Per altre informazioni sull'uso dell'identità gestita per l'autenticazione, completare l'esercitazione per l’accesso ai dati tramite identità gestita. I dettagli sulle opzioni di configurazione Tedious per Microsoft Entra ID (in precedenza Azure Active Directory) sono disponibili nella documentazione Tedious.
Eseguire il codice
Al prompt dei comandi eseguire il programma.
node sqltest.js
Verificare che vengano restituite le prime 20 righe e chiudere la finestra dell'applicazione.