اريد استعمال mongodb مع electron ولاكن هناك مشكلة


التعليقات

وجدت شيفرة خاصة بتقنية nosql client تعمل على تحميل و تشغيل mongod.exe على الحاسوب، يمكنك تصفحها من غيت هاب:

يوجد حل آخر باستخدام indexed DB ولكن لها محدوديات التخزين في المتصفح،

أرشح الخيار الأول.

حاول تضمينها في التطبيق واطلعنا على النتيجة

جربت تضمين mongodb في المشروع لاكنه اصبح غير ممكن حليا في الاصدارات الحديثة كما انه لا يعمل بشكل جيد مع mac

و للاسف indexddb لا تفي بالغرض حيث انها لا تغني عن قاعدة بيانات كاملة لتخزين نظام ادارة طلاب

( المطلوب إنشاء مجموعات كل مجموعة بها عدد من الطلاب كل طالب له id و user name و رقم هاتف و رقم ولي الامر

كما سوف يكون هناك جدول حضور لكل مجموعة و جدول امتحانات لكل مجموعة حيث سوف يتم تسجيل حضور كل طالب و الواجب و درجة الامتحان

سوف اجعل تثبيت قاعدة البيانات خارجيا حاليا ولاكن تشغيلها يعمل تلقائيا مع تشغيل التطبيق الي حين الانتهاء من التطبيق للعثور علي حل للمشكلة

في الحالة العامة لا ينصح بتحزيم MongoDB ضمن برامج أخرى وتطبيقات سطح مكتب خاصةً، فالعديد من المبرمجين واجهوا مشاكل سابقاً أثناء استخدامها خصوصاً مع تطبيقات electron فيما يخص المنفذ المتاح عند المستخدم والخصائص المتعلّقة بنظام التشغيل وغيرها. ولكن يمكنك الاطلاع على NoSQLClient التي تشرح كيفية تنفيذ ذلك وهي مفتوحة المصدر وموجودة على Github باسم: nosqlclient-electron

مثال:

//Mongodb spawn process
const spawn = require(‘child_process’).spawn;
const pipe = spawn(‘mongod’, [‘ — dbpath=YourDBPath’, ‘ — port’, ‘27018’]);
pipe.stdout.on(‘data’, function (data) {
 console.log(data.toString(‘utf8’));
});pipe.stderr.on(‘data’, (data) => {
 console.log(data.toString(‘utf8’));
});pipe.on(‘close’, (code) => {
 console.log(‘Process exited with code: ‘+ code);
});

كما ينصح باستخدام أنواع أخرى من قواعد البيانات مع هذا النوع من التطبيقات، فلديك مجال واسع من الخيارات (PouchDB، CouchDB، Redis,...) وفي حال أردت الحفاظ على بنية schema يمكنك أيضاً استخدام قاعدة البيانات المفهرسة IndexedDB فاستخدامها سهل وقريب من استخدام MongoDB.

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


برمجة

مجتمع للمبرمجين من جميع المستويات لتبادل المعرفة والخبرات. ناقش لغات البرمجة المختلفة، الحلول البرمجية، والمشاريع.

24.9 ألف متابع