2013-02-18 9 views
29

तहत JSON स्टोर करने के लिए मैं Node.js के तहत एक लगातार रास्ते में एक JSON सरणी स्टोर करने के लिए एक बहुत आसान तरीका के लिए देख रहा हूँ। इसमें कोई विशेष विशेषताएं नहीं है। मैं बस वहां एक JSON ऑब्जेक्ट रखना चाहता हूं और इसे अगले सर्वर पुनरारंभ पर पढ़ने में सक्षम होना चाहता हूं। Mongo.db या Couch.db इस उद्देश्य के लिए एक ओवरकिल जैसा प्रतीत होता है।आसान तरीका Node.js

+5

"JSON ऑब्जेक्ट" जैसी कोई चीज़ नहीं है। या तो आपके पास कोई ऑब्जेक्ट है (यहां: जावास्क्रिप्ट ऑब्जेक्ट), या आपके पास JSON है - जो एक स्ट्रिंग है। आप इस स्ट्रिंग को सामान्य तरीके से सहेज सकते हैं - फाइलें, डेटाबेस ... –

उत्तर

61

फ़ाइल पर क्यों नहीं लिखते?

// Writing... 
var fs = require("fs"); 
var myJson = { 
    key: "myvalue" 
}; 

fs.writeFile("filename.json", JSON.stringify(myJson), "utf8", yourCallback); 

// And then, to read it... 
myJson = require("./filename.json"); 
+1

जोड़ने के लिए केवल एक चीज: यदि आपको फ़ाइल की आवश्यकता है तो आपको इसकी सामग्री को ट्रस्ट करना होगा। जेएसओएन डेटा एक्सचेंज प्रारूप के रूप में नियमित रूप से भरोसा नहीं किया जाता है, अगर आपको बाहरी स्रोत से जेएसओएन मिलता है तो हमेशा जेएसओएन पार्स विधि का उपयोग करें। मैं केवल यह कह रहा हूं कि सभी जेएसओएन सामग्री के लिए इस सामान्य (पढ़ने) पैटर्न को सामान्य के रूप में याद किया जाए। –

+0

यूप, लेकिन मुझे लगता है कि लिखने से पहले मान्यताओं को लिखने से पहले किया जाना चाहिए। – gustavohenke

+0

असल में, पूरे रेल स्टैक सटीक विपरीत करता है - डेटाबेस में कुछ भी भरोसा नहीं करते हैं, और चाहे आप रेल के बारे में क्या सोच सकते हैं, उन्होंने किसी भी कारण से उस नीति को अपनाया है। –

2

आप जेएसओएन-डेटा को एक साधारण टेक्स्टफाइल में सहेज सकते हैं और इसे सर्वर पुनरारंभ पर पढ़ सकते हैं।

require('yourarrayfile.json') 

और उसके बाद सामान्य रूप से इसके साथ काम करें।

+0

वह क्या पूरा करेगा? फ़ाइल की सामग्री खो जाएगी - इसे किसी भी चर के लिए असाइन नहीं किया जाएगा। अन्य उत्तर देखें ... –

+0

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

5

मैं json-fs-store नामक फ़ाइल में JSON के लिए जावास्क्रिप्ट वस्तु को क्रमानुसार और इसे बाद में पुनः प्राप्त करने के एक पुस्तकालय में पाया गया।

जब store.load विधि (इस समय डॉक्स में वर्णित नहीं), यह JSON.parse जो अन्य जवाब में की तरह एक require कर से बेहतर है के साथ पार्स किया गया है के माध्यम से एक फ़ाइल को पुन: प्राप्त:

  • आप उचित मिलता है सामग्री खराब होने पर त्रुटि प्रबंधन
  • अगर कोई फ़ाइल में जावास्क्रिप्ट कोड छिपाने में कामयाब रहा है, तो यह जेएस को निष्पादित करने के बजाए एक पार्स त्रुटि का कारण बन जाएगा।
5

NeDB का प्रयास करें: https://github.com/louischatriot/nedb

"एंबेडेड Node.js, जावास्क्रिप्ट में लिखा के लिए लगातार डेटाबेस, कोई निर्भरता (बेशक NPM मॉड्यूल को छोड़कर) आप Node.js के लिए एक SQLite के रूप में यह के बारे में सोच सकते हैं। परियोजनाओं, जिनका उपयोग एक साधारण आवश्यकता कथन के साथ किया जा सकता है। एपीआई मोंगोडीबी का सबसेट है। आप इसे लगातार या इन-मेमोरी केवल डाटास्टोर के रूप में उपयोग कर सकते हैं। "

0

हालांकि दोनों LokiJS और NeDB इससे अधिक उपयोगकर्ता के लिए तत्पर हैं, मैं सिर्फ TaffyDB बारे में जाना। यद्यपि मैंने इसे स्वयं नहीं किया है, मैंने सोचा कि मुझे इसे पूर्णता के लिए यहां जोड़ना चाहिए।

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