electron js tutorial شرح



أين يمكن تخزين إعدادات المستخدم في تطبيق Electron(Atom Shell)؟ (4)

لا يمكنني تحديد موقع آلية مضمّنة لتخزين إعدادات المستخدم. كنت آمل أن يوفر الإلكترون طريقة قياسية لتخزين إعدادات المستخدم عبر جميع منصات سطح المكتب. إذا لم تكن هناك سابقة لهذا يمكنني أن أطبقها بنفسي ، لم أكن أرغب في الانتقال إلى حل مخصص على الفور. البحث على الإنترنت هو متفرق جدا في هذا المجال. شكر!

https://ffff65535.com


أفضل طريقة وجدت هي تخزينها في ملف بسيط مثل JSON. المشكلة هي أنه إذا قمت بتخزين JSON في التطبيق dir ، فعندما تقوم بتحديث التطبيق ، فسوف يتم القضاء عليه. لذلك تريد وضعه في الدليل الافتراضي لإعدادات المستخدم لنظام التشغيل الحالي. لحسن الحظ !!!!! هناك مكتبة لمطوري العقدة ستساعدك في العثور على دليل بيانات المستخدم. الوحدة النمطية تسمى appdirectory ، ولقد استخدمتها عدة مرات. انه سهل الاستخدام جدا.

انظر إلى هنا


اليكترون لا يعطيك أي شيء خارج الصندوق لهذا الغرض. ومع ذلك ، يوفر لك Electron طريقة للحصول على الموقع الاصطلاحي لتخزين بيانات المستخدم بطريقة مشتركة عبر النظام الأساسي عبر app.getPath API.

أود أن أقول أن الطرق الثلاثة الأكثر شيوعًا للقيام بذلك هي:

  • localStorage (أو أي واجهة تخزين HTML5)
  • ملف JSON مسطح (هذا ما أقوم به ، وأنا أستخدم electron-store له)
  • قاعدة البيانات المضمنة مثل IndexedDB ، neDB ، أو sqlite

أي واحد تختاره سيعتمد على احتياجات التطبيق الخاص بك. إذا كنت بحاجة فقط للوصول إلى هذه البيانات في عملية تقديم ، فأنا فقط استخدم localStorage . يبدو أنك في معظم الأحيان تحتاج إلى الوصول إلى البيانات في كل من العارض الرئيسي والعارض ، لذلك فإن ملف JSON منطقي. إذا كنت تتعامل مع الكثير من البيانات أو الاستعلامات المعقدة ، فربما تكون قاعدة البيانات منطقية. لقد كتبت عن هذا بمزيد من التفصيل هنا .


لقد واجهت هذه المشكلة بالتحديد في تطبيق Electron الخاص بي ، وقد ألهمني هذا electron-json-storage لكتابة وحدة NPM تسمى electron-json-storage .

تسمح هذه الوحدة لكتابة / قراءة JSON بسهولة من / إلى app.getPath('userData') :

const storage = require('electron-json-storage');

// Write
storage.set('foobar', { foo: 'bar' }).then(function() {

    // Read
    storage.get('foobar').then(function(object) {
        console.log(object.foo);
        // will print "bar"
    });

});

ماذا عن LocalStorage؟ إذا كنت بحاجة إلى الوصول إلى هذه الإعدادات من عملية المتصفح ، فربما تحتاج إلى كتابة الخاصة بك (أو مجرد استخدام مكتبة node.js التي تنفذ هذا)





electron