Rövid útmutató: Adatbázis lekérdezése a Node.js használatával az Azure SQL Database-ben vagy a felügyelt Azure SQL-példányban

A következőre vonatkozik: Azure SQL DatabaseFelügyelt Azure SQL-példány

Ebben a rövid útmutatóban a Node.js használatával csatlakozik egy adatbázishoz, és adatokat kérdez le.

Előfeltételek

A rövid útmutató elvégzéséhez a következőkre lesz szüksége:


Fontos

A cikkben szereplő szkriptek az AdventureWorks-adatbázis használatára vannak megírva.

Kiszolgáló kapcsolati adatainak lekérése

Szerezze be az adatbázishoz való csatlakozáshoz szükséges kapcsolati adatokat. A következő lépésekhez szüksége lesz a teljes kiszolgálónévre vagy állomásnévre, adatbázisnévre és bejelentkezési adatokra.

  1. Jelentkezzen be az Azure Portalra.

  2. Nyissa meg az SQL Databases vagy a felügyelt SQL-példányok lapot.

  3. Az Áttekintés lapon tekintse át az Azure SQL Database-beli adatbázis Kiszolgáló neve melletti teljes kiszolgálónevet, vagy a gazdagép melletti teljes kiszolgálónevet (vagy IP-címet) egy Felügyelt Azure SQL-példányhoz vagy azure-beli virtuális gépen futó SQL Serverhez. A kiszolgáló vagy a gazdagép nevének másolásához mutasson rá, és válassza a Másolás ikont.

Megjegyzés:

Az Azure-beli virtuális gépen futó SQL Server kapcsolati információi: Csatlakozás az SQL Serverhez.

A projekt létrehozása

Nyisson meg egy parancssort, és hozzon létre egy sqltest nevű mappát. Nyissa meg a létrehozott mappát, és futtassa a következő parancsot:

npm init -y
npm install mssql

Kód hozzáadása az adatbázis lekérdezéséhez

  1. A kedvenc szövegszerkesztőjében hozzon létre egy új fájlt ( sqltest.js) abban a mappában, amelyben létrehozta a projektet (sqltest).

  2. Cserélje le a tartalmát a következő kódra. Ezután adja hozzá a kiszolgáló, az adatbázis, a felhasználó és a jelszó megfelelő értékeit.

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

Megjegyzés:

A felügyelt identitás hitelesítéshez való használatával kapcsolatos további információkért töltse ki az oktatóanyagot az adatok felügyelt identitáson keresztüli eléréséhez. A Microsoft Entra ID (korábbi nevén Azure Active Directory) unalmas konfigurációs beállításairól a Tedious dokumentációjában olvashat.

A kód futtatása

  1. Futtassa a programot a parancssorban.

    node sqltest.js
    
  2. Ellenőrizze, hogy a rendszer visszaadta-e az első 20 sort, és zárja be az alkalmazásablakot.

További lépések