Quickstart: Node.js gebruiken om een query uit te voeren op een database in Azure SQL Database of Azure SQL Managed Instance

Van toepassing op: Azure SQL DatabaseAzure SQL Managed Instance

In deze quickstart gebruikt u Node.js om verbinding te maken met een database en een query uit te voeren op gegevens.

Vereisten

U hebt het volgende nodig om deze snelstartgids te voltooien:


Belangrijk

De scripts in dit artikel worden geschreven om de AdventureWorks-database te gebruiken.

Serververbindingsgegevens ophalen

Haal de verbindingsgegevens op die u nodig hebt om verbinding te maken met de database. Voor de komende stappen hebt u de volledig gekwalificeerde servernaam of hostnaam, databasenaam en aanmeldingsgegevens nodig.

  1. Meld u aan bij de Azure-portal.

  2. Ga naar de pagina SQL-databases of Met SQL beheerde exemplaren.

  3. Bekijk op de pagina Overzicht de volledig gekwalificeerde servernaam naast Servernaam voor een database in Azure SQL Database of de volledig gekwalificeerde servernaam (of het IP-adres) naast Host voor een met Azure SQL beheerd exemplaar of SQL Server op de Azure-VM. Als u de servernaam of hostnaam wilt kopiƫren, plaatst u de muisaanwijzer erop en selecteert u het pictogram Kopiƫren.

Notitie

Zie Verbinding maken met SQL Server voor meer informatie over de verbinding van SQL Server op een Azure-VM.

Het project maken

Open een opdrachtprompt en maak een map met de naam sqltest. Open de map die u hebt gemaakt en voer de volgende opdracht uit:

npm init -y
npm install mssql

Code toevoegen om een query uit te voeren op de database

  1. Maak in uw favoriete teksteditor een nieuw bestand, sqltest.js, in de map waarin u het project (sqltest) hebt gemaakt.

  2. Vervang de inhoud ervan door de volgende code. Voeg vervolgens de juiste waarden toe voor uw server, database, gebruiker en wachtwoord.

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

Notitie

Voltooi de zelfstudie voor toegang tot gegevens via een beheerde identiteit voor meer informatie over het gebruik van beheerde identiteiten voor verificatie. Details over de tedious-configuratieopties voor Microsoft Entra ID (voorheen Azure Active Directory) zijn beschikbaar in de Tedious-documentatie.

De code uitvoeren

  1. Voer het programma uit bij de opdrachtprompt.

    node sqltest.js
    
  2. Controleer de bovenste 20 rijen die worden geretourneerd en sluit het toepassingsvenster.

Volgende stappen