التشغيل السريع: استخدام Node.js للاستعلام عن قاعدة بيانات في Azure SQL Database أو Azure SQL Managed Instance

ينطبق على: Azure SQL Database Azure SQL Managed Instance

في هذا التشغيل السريع، يمكنك استخدام Node.js للاتصال بقاعدة بيانات وبيانات الاستعلام.

المتطلبات الأساسية

للتشغيل السريع، تحتاج إلى:


هام

تتم كتابة البرامج النصية في هذه المقالة لاستخدام قاعدة بيانات Adventure Works.

ملاحظة

يمكنك اختيارياً اختيار استخدام Azure SQL Managed Instance.

للإنشاء والتكوين، استخدم مدخل Azure أو PowerShell أو CLI، ثم قم بإعداد اتصال محلي أو اتصال جهاز ظاهري.

لتحميل البيانات، راجع الاستعادة باستخدام BACPAC مع ملف Adventure Works، أو راجع استعادة قاعدة بيانات Wide World Importers.

الحصول على معلومات اتصال الخادم

احصل على معلومات الاتصال التي تحتاجها للاتصال بقاعدة البيانات في Azure SQL Database. ستحتاج إلى اسم الخادم المؤهل بالكامل أو اسم المضيف واسم قاعدة البيانات ومعلومات تسجيل الدخول للإجراءات القادمة.

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. انتقل إلى SQL Databases أو صفحة SQL Managed Instances.

  3. في صفحة ⁧⁩Overview⁧⁩، راجع اسم الخادم المؤهل بالكامل بجوار ⁧⁩Server name⁧⁩ لقاعدة بيانات في Azure SQL Database أو اسم الخادم المؤهل بالكامل (أو عنوان IP) بجوار ⁧⁩Host⁧⁩ لـ Azure SQL Managed Instance أو SQL Server على Azure VM. لنسخ اسم الخادم أو اسم المضيف، مرر فوقه وحدد الأيقونة ⁧⁩Copy⁧⁩.

ملاحظة

للحصول على معلومات الاتصال لـ SQL Server على Azure VM، راجع Connect to a SQL Server.

إنشاء المشروع

افتح موجه الأوامر، وقم بإنشاء مجلد يسمى sqltest. افتح المجلد الذي قمت بإنشائه، وشغل الأمر التالي:

npm init -y
npm install tedious

إضافة التعليمات البرمجية للاستعلام عن قاعدة البيانات

  1. في محرر النص المفضل لديك، قم بإنشاء ملف جديد، sqltest.js.

  2. استبدل محتوياته بالتعليمة البرمجية التالية. ثم أضف القيم المناسبة لخادمك وقاعدة البيانات والمستخدم وكلمة المرور.

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

ملاحظة

لمزيد من المعلومات حول استخدام الهوية المدارة للمصادقة، أكمل البرنامج التعليمي للوصول إلى البيانات عبر الهوية المدارة.

ملاحظة

يستخدم مثال التعليمات البرمجية قاعدة بيانات نموذج AdventureWorksLT في Azure SQL Database.

تشغيل التعليمات البرمجية

  1. في موجه الأوامر، قم بتشغيل البرنامج.

    node sqltest.js
    
  2. تحقق من إرجاع أفضل 20 صفًا، وأغلق نافذة التطبيق.

الخطوات التالية