2012-11-25 22 views
9

मैंने अभी नोडज सीखना शुरू कर दिया है। मैं वर्तमान में सॉकेट के साथ काम कर रहा हूं और चैट कार्यक्रम बना रहा हूं।नोडजेस एक फ़ाइल में जेसन लिखते हैं

मैं पूरी चैट को जेएसएस फ़ाइल में सहेजना चाहता हूं। वर्तमान में मेरा कोड यह है:

socket.on('chat', function (data) { 
    message = {user : data.message.user, message : data.message.message}; 
    chat_room.sockets.emit('chat', {message: message}); 

    jsonString = JSON.stringify(message); 

    fs.appendFile("public/chat.json", jsonString, function(err) { 
     if(err) { 
      console.log(err); 
     } else { 
      console.log("The file was saved!"); 
     } 
    }); 

    }); 

यह वर्तमान में सही काम कर रहा है, लेकिन फ़ाइल में लिखा गया जेसन गलत है।

यह मैं एक गलत json

{"user":"niraj","message":"hw r u?"}{"user":"ntechi","message":"hello"}{"user":"ntechi","message":"hw r u?"}

दिया जब संदेश शुरू हो रहा है इसके बाद के संस्करण कोड कहा जाता है। मैं इस प्रारूप में json

{"user":"awd","message":"hw r u?","user":"ntechi","message":"hello","user":"ntechi","message":"hw r u?"}

किसी को भी इस में मेरी मदद कर सकते हैं? अग्रिम धन्यवाद

उत्तर

11

गलत JSON का पहला सेट बनाया गया है क्योंकि जब भी आप संदेश प्राप्त करते हैं तो आप JSON के एक टुकड़े को एक फ़ाइल में जोड़ रहे हैं।

JSON का दूसरा सेट भी गलत है - प्रत्येक संपत्ति का नाम अद्वितीय होना चाहिए।

[ 
{"user":"niraj","message":"hw r u?"}, 
{"user":"ntechi","message":"hello"}, 
{"user":"ntechi","message":"hw r u?"} 
] 

जो मामले में तर्क आप उपयोग करने की आवश्यकता है: JSON के रूप में फ़ाइल से

  1. डेटा पढ़ें
  2. पार्स डेटा और एक चर को असाइन

    मुमकिन है आप कुछ की तरह चाहते हैं

  3. किसी त्रुटि की स्थिति में, उस चर
  4. पर एक खाली सरणी असाइन करेंसरणी
  5. के अंत पर संदेश वस्तु सरणी
  6. stringify नया तार के साथ फ़ाइल अधिलेखित करें
+0

धन्यवाद यह काम किया अब मैं json फ़ाइल पढ़ रहा हूँ, एक में एक स्ट्रिंग के रूप में यह भंडारण परिवर्तनीय और 'concat' का उपयोग करके मैं दो चर संलग्न कर रहा हूं और उस फ़ाइल में संपूर्ण जेसन लिख रहा हूं। –

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