Hızlı Başlangıç: Node.js kullanarak Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği bir veritabanını sorgulama

Şunlar için geçerlidir:Azure SQL Veritabanı Azure SQL Yönetilen Örneği

Bu hızlı başlangıçta bir veritabanına bağlanmak ve verileri sorgulamak için Node.js kullanacaksınız.

Önkoşullar

Bu hızlı başlangıcı tamamlamak için şunlar gerekir:


Önemli

Bu makaledeki betikler AdventureWorks veritabanını kullanacak şekilde yazılmıştır.

Sunucu bağlantı bilgilerini alma

Veritabanına bağlanmak için ihtiyacınız olan bağlantı bilgilerini alın. Yaklaşan adımlar için tam sunucu adına veya ana bilgisayar adına, veritabanı adına ve oturum açma bilgilerine ihtiyacınız olacaktır.

  1. Azure Portal oturum açın.

  2. SQL Veritabanı veya SQL Yönetilen Örneği sayfasına gidin.

  3. Genel Bakış sayfasında, Azure SQL Veritabanı bir veritabanı için Sunucu adı'nın yanındaki tam sunucu adını veya Azure VM'de bir Azure SQL Yönetilen Örneği veya SQL Server için Konak'ın yanındaki tam sunucu adını (veya IP adresini) gözden geçirin. Sunucu adını veya ana bilgisayar adını kopyalamak için üzerine gelin ve Kopyala simgesini seçin.

Dekont

Azure VM'de SQL Server bağlantı bilgileri için bkz. SQL Server'a Bağlan.

Proje oluşturma

Komut istemini açın ve sqltest adlı bir klasör oluşturun. Oluşturduğunuz klasörü açın ve aşağıdaki komutu çalıştırın:

npm init -y
npm install mssql

Veritabanını sorgulamak için kod ekleme

  1. Sık kullandığınız metin düzenleyicisinde, projeyi oluşturduğunuz klasörde (sqltest) yeni bir sqltest.js dosyası oluşturun.

  2. içeriğini aşağıdaki kodla değiştirin. Ardından sunucunuz, veritabanınız, kullanıcınız ve parolanız için uygun değerleri ekleyin.

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

Dekont

Kimlik doğrulaması için yönetilen kimliği kullanma hakkında daha fazla bilgi için yönetilen kimlik aracılığıyla verilere erişme öğreticisini tamamlayın. Microsoft Entra Id (eski adıYla Azure Active Directory) için Sıkıcı yapılandırma seçenekleri hakkındaki ayrıntılarAğ belgelerinde bulunabilir.

Kodu çalıştırma

  1. Komut isteminde programı çalıştırın.

    node sqltest.js
    
  2. İlk 20 satırın döndürülür olduğunu doğrulayın ve uygulama penceresini kapatın.

Sonraki adımlar