Hızlı Başlangıç: Node.js Yönetilen Örneği'Azure SQL Veritabanı Azure SQL veritabanını sorgulamak için SQL kullanma

Uygulama hedefi: Azure SQL Veritabanı Azure SQL yönetilen örneği

Bu hızlı başlangıçta veritabanına bağlanmak Node.js veri sorgulamak için Node.js'i kullanırsınız.

Önkoşullar

Bu hızlı başlangıcı tamamlamak için aşağıdakilere ihtiyacınız vardır:


Önemli

Bu makaledeki betikler Adventure Works veritabanını kullanmak için yazılmıştır.

Not

İsteğe bağlı olarak Azure Yönetilen Örneği'SQL seçebilirsiniz.

Oluşturmak ve yapılandırmak için Azure portal , PowerShellveya CLIkullanın ve ardından şirket içi veya VM bağlantısını ayarlayın.

Verileri yüklemek için Bkz. Adventure Works dosyasıyla BACPAC ile geri yükleme veya Wide World Importersveritabanını geri yükleme.

Sunucu bağlantı bilgilerini al

Veritabanına bağlanmak için ihtiyacınız olan bağlantı bilgilerini Azure SQL Veritabanı. Gelecek yordamlar için tam sunucu adına veya ana bilgisayar adına, veritabanı adına ve oturum açma bilgilerine ihtiyacınız olacak.

  1. Azure Portal oturum açın.

  2. SQL Veritabanları'SQL sayfasına gidin.

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

Not

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

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 tedious

Veritabanını sorgulamak için kod ekleme

  1. Sık kullanılan metin düzenleyicide yeni bir dosya oluşturun ve sqltest.js.

  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 { Connection, Request } = require("tedious");
    
    // Create connection to database
    const config = {
      authentication: {
        options: {
          userName: "username", // update me
          password: "password" // update me
        },
        type: "default"
      },
      server: "your_server.database.windows.net", // update me
      options: {
        database: "your_database", //update me
        encrypt: true
      }
    };
    
    /* 
        //Use Azure VM Managed Identity to connect to the SQL database
        const config = {
            server: process.env["db_server"],
            authentication: {
                type: 'azure-active-directory-msi-vm',
            },
            options: {
                database: process.env["db_database"],
                encrypt: true,
                port: 1433
            }
        };
    
        //Use Azure App Service Managed Identity to connect to the SQL database
        const config = {
            server: process.env["db_server"],
            authentication: {
                type: 'azure-active-directory-msi-app-service',
            },
            options: {
                database: process.env["db_database"],
                encrypt: true,
                port: 1433
            }
        });
    
    */
    
    const connection = new Connection(config);
    
    // Attempt to connect and execute queries if connection goes through
    connection.on("connect", err => {
      if (err) {
        console.error(err.message);
      } else {
        queryDatabase();
      }
    });
    
    connection.connect();
    
    function queryDatabase() {
      console.log("Reading rows from the Table...");
    
      // Read all rows from table
      const request = new Request(
        `SELECT TOP 20 pc.Name as CategoryName,
                       p.name as ProductName
         FROM [SalesLT].[ProductCategory] pc
         JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid`,
        (err, rowCount) => {
          if (err) {
            console.error(err.message);
          } else {
            console.log(`${rowCount} row(s) returned`);
          }
        }
      );
    
      request.on("row", columns => {
        columns.forEach(column => {
          console.log("%s\t%s", column.metadata.colName, column.value);
        });
      });
    
      connection.execSql(request);
    }
    

Not

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 öğreticisi'nin tamamlanmıştır.

Not

Kod örneği, Azure SQL Veritabanı'daki AdventureWorksLT örnek veritabanını kullanır.

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 olduğunu doğrulayın ve uygulama penceresini kapatın.

Sonraki adımlar