2016-06-06 10 views
6

के लिए स्थानीय, फ़ाइल-आधारित डेटाबेस हम एक ऐसे अनुप्रयोग पर काम कर रहे हैं जो Electron के माध्यम से वेब-आधारित और क्रॉस-प्लेटफ़ॉर्म डेस्कटॉप समाधान दोनों के रूप में पेश किया जाएगा।एक इलेक्ट्रॉन अनुप्रयोग

ग्राहक आवश्यकताओं के कारण, डेस्कटॉप क्लाइंट डेटा स्टोर करने के लिए "क्लाउड" का उपयोग नहीं कर सकता है; सभी डेटा स्थानीय मशीन में संग्रहीत किया जाना चाहिए या इससे भी बेहतर, उपयोगकर्ता को डेटाबेस/डेटा फ़ाइल को बाहरी एचडीडी पर रखने का विकल्प होना चाहिए ताकि एक ही स्थानीय नेटवर्क पर एक अन्य उपयोगकर्ता एक ही डेटा फ़ाइल का उपयोग कर सके।

हम NeDB, PouchDB इत्यादि देख रहे हैं, लेकिन ये सभी डेटा स्टोर करने के लिए ब्राउज़र पर वेब SQL या IndexedDB का उपयोग करते हैं। नेडबी सैद्धांतिक रूप से फ़ाइल सिस्टम का उपयोग कर सकता है लेकिन यह नोड वेबकिट ऐप्स के लिए केवल संभव है।

एक और विकल्प निश्चित रूप से MongoDB है, लेकिन इसे किसी वेब सर्वर पर साइट सेट करने की आवश्यकता है। यह देखकर कि हमारे उपयोगकर्ता इसे अपनी मशीनों पर कैसे सेट करेंगे, यह केवल एक उपयोगकर्ता के लिए काम करेगा, लेकिन डेटा को साझा करने के लिए उन्हें बहुत कठिन बना देगा (नोट: उपयोगकर्ताओं को थोड़ा तकनीकी ज्ञान-) मानें।

  • क्या एनडीबी को ब्राउज़र में डेटाबेस के बजाय फ़ाइल में डेटा जारी रखने के लिए मजबूर करने का कोई तरीका है?
  • वैकल्पिक रूप से, क्या कोई फ़ाइल-आधारित, कॉम्पैक्ट डेटाबेस के बारे में जानता है जो इलेक्ट्रॉन/नोड के साथ अच्छी तरह से खेलता है?

हम अधिमानतः नोएसQL डेटाबेस का उपयोग करना चाहते हैं, लेकिन फ़ाइल-आधारित SQL डेटाबेस के विकल्प भी विचार किए जाएंगे।

+0

क्या आप इस "वेब-आधारित" भाग के आसपास की आवश्यकताओं में अधिक गोता लगा सकते हैं? इलेक्ट्रॉन से निपटने के दौरान सीसीनोक्स उनके जवाब के साथ सही है, लेकिन, आपके प्रश्न से, ऐसा लगता है कि आपको कुछ ऐसा चाहिए जो मानक ब्राउज़र में भी काम करेगा। क्या वह सही है? –

उत्तर

5

मुझे इलेक्ट्रान ऐप में नेडबी के साथ कुछ अनुभव है और मैं कह सकता हूं कि यह निश्चित रूप से फाइल सिस्टम पर काम करेगा।

आप एनडीबी (या जो भी आपकी डेटाबेस पसंद है) शुरू कर रहे हैं? साथ ही, क्या आप इसे मुख्य या रेंडरर प्रक्रिया में शुरू कर रहे हैं? यदि आप इसे साझा कर सकते हैं, तो मुझे लगता है कि हम इस मुद्दे को कॉन्फ़िगरेशन समस्या पर ढूंढ सकते हैं।

इस प्रकार आप डिस्क पर सहेजने वाले एक सतत डेटा-स्टोर के साथ नेडबी शुरू करते हैं।

var Datastore = require('nedb') 
    , db = new Datastore({ filename: 'path/to/datafile', autoload: true }); 

मुझे लगता है कि MongoDB (यह वास्तव में एक उच्च प्रदर्शन, वितरित डेटाबेस बादल में चल रहा होना है) एक इलेक्ट्रॉन अनुप्रयोग के लिए overkill होने जा रहा है।

एक अन्य विकल्प जिसे आप विचार कर सकते हैं LevelDB (एक कुंजी/मूल्य स्टोर जो फाइल सिस्टम पर जारी रह सकता है) जो नोड समुदाय में लोकप्रिय है। (संपादित करें 4/17/17 इंडेक्सड डीबी हुड के नीचे लेवलडीबी का उपयोग करता है, इसलिए यदि आप उस मार्ग पर जाते हैं, तो बस इसका उपयोग भी कर सकते हैं)

एक पहलू मैं निश्चित रूप से सावधानी से मूल्यांकन करना चाहता हूं: यह डेटाबेस कितना मुश्किल होगा पैकेज और वितरित? मैं इसे अपने निर्माण प्रणाली में कैसे एकीकृत करूं? स्तर और एनडीबी को आसानी से npm install के माध्यम से शामिल किया जा सकता है और किसी देशी कोड संकलन को नोड-जीईपी के साथ सहजता से संभाला जाता है, जो जितना आसान हो जाता है। हालांकि, उदाहरण के लिए, मोंगो को बंडल करने के लिए प्रत्येक कार्य के लिए एक कामकाजी निर्माण करने के लिए कुछ काम की आवश्यकता होगी।

+0

मुझे लगता है कि आप यहां कुछ हो सकते हैं।मैं डेटाबेस नाम के साथ डेटाबेस शुरू करता हूं और 'ऑटोलोड' ... बात यह है कि हम एक [ऑरेलिया] (http://aurelia.io) ऐप शुरू करने के लिए इलेक्ट्रॉन मुख्य प्रोसेस का उपयोग करते हैं, और मैं ऑरेलिया से डीबी शुरू करता हूं एप्लिकेशन। मैं इलेक्ट्रॉन के लिए नया हूं, मैं मुख्य या पुनर्विक्रेता प्रक्रिया से एनडीबी कैसे शुरू करूं? और फिर उस डीबी को शेष ऐप के लिए कैसे उपलब्ध कराया जा सकता है? –

+1

@ सर्गीपापसीट इसे मुख्य रूप से फाइलर सिस्टम बैकिंग के साथ मुख्य या रेंडरर से शुरू करना मुझे लगता है। जहां तक ​​यह बाकी ऐप के लिए उपलब्ध करा रहा है .... बस इसे मॉड्यूल से निर्यात करें। यदि इसे मुख्य से शुरू किया गया है और आपको इसे एक रेंडरर से एक्सेस करने की आवश्यकता है तो आप इलेक्ट्रॉनों के आईपीसी या रिमोट एपीआई का उपयोग कर सकते हैं। – ccnokes

संबंधित मुद्दे