اذهب إلى المحتوى
  • 0

كيف اربط تطبيقي Electron JS سطح مكتب مع قاعدة بيانات عبر الشبكة أو محلية للسماح للمستخدمين بتبادل البيانات

صالح قريشه

السؤال

لعلى من ابرز ايجابيات اطار electron هو تعامل التطبيق مع النت 
سؤالي ماهي الوحده او كيف يمكنني ارسال واستقبال بيانات بين تطبيقين عن طريق النت او حتى على شبكه محليه

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

إن المنطق وراء ربط عدة مستخدمين مع بعضهم يكمن في أن لهم جميعاً قاعدة بيانات واحدة، ويوجد بيانات فيها مشتركة (على الأقل قابلة للقراءة منهم جميعاً).

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

يوجد الكثير من قواعد البيانات، ولنفرض أن لديك قاعدة من نوع MySQL لتطبيقك على استضافة.

ما تحتاج عمله في تطبيقك هو تنصيب الوحدة الموافقة لقاعدة البيانات تلك، ثم إجراء العمليات:

  • تهيئة الاتصال مع قاعدة البيانات
  • تنفيذ الاستعلامات من قبل المستخدمين

تنصيب الحزمة الخاصة ب mysql

npm install mysql

ثم تضمين الوحدة، و تهيئة الاتصال و عمل استعلام

var mysql = require('mysql');

// إضافة معلومات المستخدم للاتصال على قاعدة البيانات
var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : null, // password 
    database : 'my-database-name'
});

// الاتصال
connection.connect(function(err) {
    // حدوث خطأ
    if(err){
        console.log(err.code);
        console.log(err.fatal);
    }
});

// تعريف الالة التي تجلب الاستعلام
function get_10_Rows(callback){

  // استعلام افتراضي
  $query = 'SELECT * FROM `Tasks` LIMIT 10';

  connection.query($query, function(err, rows, fields) {
    if(err){
      console.log("An error ocurred performing the query."); // حصول خطأ
      console.log(err);
      return;
    }

    console.log("Query succesfully executed", rows); // نجاح الاستعلام
  });

  // اغلاق الاتصال
  connection.end(function(){
  });
}

ناتج الاستعلام يعود من خلال المتغير rows.

<script>
  
// عند النقر على زر معين
  document.getElementById('action-btn').addEventListener('click', function(){

    // استدعاء دالة جلب أول 10 مهام
    // rows فيها النتيجة
    get_10_Rows(function(rows){

      var html = '';

      rows.forEach(function(row){
        html += '<tr>';
        html += '<td>';
        html += row.id;
        html += '</td>';
        html += '<td>';
        html += row.name;
        html += '</td>';
        html += '</tr>';
        console.log(row);
      });
	// حقن النتيجة في الجدول
      document.querySelector('#table > tbody').innerHTML = html;
    });
  },false);


</script>

كانت هذه طريقة التواصل مع قاعدة بيانات مباشرة، يمكنك عمل خادم ويب مثل EXPRESS والاتصال معه عبر API

ليعمل عبر الشبكة المحلية، يتوجب الاتصال على IP الحاسوب المحلي الذي فيه مخدم قواعد البيانات mysql , وضعه مكان host في جزء تهيئة الاتصال مع تحديد منفذ 3306.

var connection = mysql.createConnection({
  host     : ' 192.168.1.2',               IP
                      
  port     : '3306',                       MySQL port

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1
بتاريخ 6 ساعات قال صالح قريشه:

أفهم من كلامك الأستاذ وائل لابد من استخدام الواجهة الخلفيه قبل الاهتمام بالربط وماربط

نعم صحيح، يمكنك اعتبار تطبيق Electron واجهة أمامية يعمل استعلامات من خادم ويب ويمكن أن يتصل عليه من خلال API 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...