JSON एक बहुत ही सामान्य डेटा प्रारूप है, इसलिए इन सभी सामान्य परिचालनों के बारे में सीखना महत्वपूर्ण है।

Node.js में JSON फ़ाइलों को पढ़ना और लिखना संभव है। आपको बस हमारे आसान-से-पालन मार्गदर्शिका में वर्णित एफएस मॉड्यूल का उपयोग करना है।

Node.js में JSON फ़ाइलें पढ़ना और लिखना

जावास्क्रिप्ट ऑब्जेक्ट नोटेशन प्रारूप, जिसे लोकप्रिय रूप से JSON के नाम से जाना जाता है, एक हल्का डेटा-ट्रांसफर प्रारूप है जिसका व्यापक रूप से संरचित डेटा का प्रतिनिधित्व करने के लिए उपयोग किया जाता है। यह एक टेक्स्ट-आधारित प्रारूप है जिसे मनुष्यों के लिए पढ़ना और लिखना और मशीनों के लिए पार्स करना और उत्पन्न करना आसान है।

Node.js में JSON फ़ाइलों को प्रोग्रामेटिक रूप से पढ़ने और लिखने की क्षमता आपको संरचित डेटा को कुशलतापूर्वक और आसानी से संग्रहीत करने, विनिमय करने और हेरफेर करने की अनुमति देती है। Node.js फ़ाइल सिस्टम मॉड्यूल का उपयोग करके JSON फ़ाइलों को पढ़ना, लिखना और अपडेट करना सीखें।

Node.js फ़ाइल सिस्टम मॉड्यूल

Node.js फ़ाइल सिस्टम (एफ.एस) मॉड्यूल Node.js में बनाया गया है। यह आपको अपने डिवाइस पर फ़ाइल सिस्टम के साथ इंटरैक्ट करने देता है। आप इसका उपयोग किसी फ़ाइल की सामग्री को पढ़ने, एक नई फ़ाइल बनाने और अन्य चीज़ों के अलावा किसी फ़ाइल को हटाने के लिए कर सकते हैं।

instagram viewer

द्वारा प्रदान की गई विधियाँ एफ.एस मॉड्यूल या तो हो सकता है तुल्यकालिक या अतुल्यकालिक. सिंक्रोनस विधियाँ आपके प्रोग्राम के निष्पादन को तब तक रोकती हैं जब तक फ़ाइल सिस्टम ऑपरेशन पूरा नहीं हो जाता। इन विधियों के नाम के अंत में आमतौर पर "सिंक" होता है। उदाहरण के लिए, readFileSync या राइटफ़ाइलसिंक.

दूसरी ओर, अतुल्यकालिक विधियाँ आपके प्रोग्राम के निष्पादन को अवरुद्ध नहीं करती हैं और फ़ाइल सिस्टम ऑपरेशन के दौरान इसे अन्य कार्यों को संसाधित करना जारी रखने की अनुमति देती हैं। ये विधियाँ एक कॉलबैक फ़ंक्शन स्वीकार करती हैं जो ऑपरेशन पूरा होने पर चलेगी। उदाहरण के लिए, फ़ाइल पढ़ें या फ़ाइल लिखें.

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

हालाँकि, कुछ परिदृश्यों में सिंक्रोनस विधियों का अपना स्थान होता है, खासकर जब आप सरल स्क्रिप्ट लिख रहे हों या एक बार फ़ाइल संचालन से निपट रहे हों।

एफएस मॉड्यूल के साथ JSON फ़ाइलें पढ़ना

JSON फ़ाइल को पढ़ने के लिए, पहले एसिंक्रोनस आयात करें एफ.एस आपकी मुख्य फ़ाइल में मॉड्यूल। जैसे इतना:

const fs = require("node: fs/promises");

यदि आप इससे कम संस्करण का उपयोग कर रहे हैं नोड.जेएस v18, आयात करें एफ.एस मॉड्यूल इस प्रकार:

const fs = require("fs/promises");

यदि आप संपूर्ण मॉड्यूल (सिंक्रोनस और एसिंक्रोनस) आयात करना चाहते हैं, तो हटा दें /promises.

आप इसका उपयोग करके JSON फ़ाइल पढ़ सकते हैं फ़ाइल पढ़ें विधि जो दो तर्क लेती है: एक फ़ाइल पथ और एक वैकल्पिक कॉन्फ़िगरेशन ऑब्जेक्ट। कॉन्फ़िगरेशन तर्क फ़ाइल को पढ़ने के लिए विकल्प निर्दिष्ट करता है और विकल्पों या स्ट्रिंग एन्कोडिंग के साथ एक ऑब्जेक्ट हो सकता है।

ऑब्जेक्ट विकल्पों में शामिल हैं:

  • एन्कोडिंग (डोरी, डिफ़ॉल्ट "utf8" है): यह विकल्प फ़ाइल को पढ़ते समय उपयोग करने के लिए वर्ण एन्कोडिंग निर्दिष्ट करता है। सामान्य एन्कोडिंग में टेक्स्ट फ़ाइलों के लिए "utf8" और बाइनरी फ़ाइलों के लिए "बाइनरी" शामिल हैं।
  • झंडा (डोरी, डिफ़ॉल्ट "r" है): यह विकल्प फ़ाइल खोलते समय उपयोग किए जाने वाले फ़ाइल सिस्टम ध्वज को निर्दिष्ट करता है। सामान्य झंडों में पढ़ने के लिए "r" और लिखने के लिए "w" शामिल हैं।

उदाहरण के लिए:

fs.readFile("./users.json", { encoding: "utf-8", flag: "r" })
.then((data) => {
const users = JSON.parse(data);
console.log(users);
})
.catch((error) => {
console.error('Error reading the JSON file:', error);
});

यह कोड नामक JSON फ़ाइल को पढ़ता है उपयोगकर्ता.json वर्तमान निर्देशिका में. जब आप फ़ाइल का डेटा पुनर्प्राप्त करते हैं, तो आप इसे JSON से जावास्क्रिप्ट ऑब्जेक्ट का उपयोग करके पार्स कर सकते हैं JSON.पार्स. यह आपको अपने कोड में एक ऑब्जेक्ट के रूप में डेटा तक पहुंचने और उसमें हेरफेर करने की अनुमति देता है।

छोटी JSON फ़ाइलों के लिए, आप इसका उपयोग कर सकते हैं ज़रूरत होना उन्हें समकालिक रूप से पढ़ने के लिए. यह विधि स्वचालित रूप से JSON फ़ाइलों को जावास्क्रिप्ट ऑब्जेक्ट में पार्स करती है। बड़ी JSON फ़ाइलों के लिए और गैर-अवरुद्ध परिदृश्यों में, उपयोग करें fs.readफ़ाइल उन्हें अतुल्यकालिक रूप से पढ़ने के लिए. इसके अतिरिक्त, उपयोग करना ज़रूरत होना फ़ाइल सामग्री को मेमोरी में कैश भी करता है, इसलिए यदि आपकी JSON फ़ाइल बहुत अधिक बदलती है तो यह आदर्श नहीं हो सकता है।

एफएस मॉड्यूल के साथ JSON फ़ाइलें लिखना

आप इसका उपयोग करके JSON फ़ाइलों में डेटा लिख ​​सकते हैं फ़ाइल लिखें तरीका। यह विधि तीन तर्क लेती है:

  • एक फ़ाइल पथ.
  • वह डेटा जिसे आप फ़ाइल में लिखना चाहते हैं, जो एक स्ट्रिंग, एक बफर, एक हो सकता है AsyncIterable, या एक चलने योग्य वस्तु.
  • एक वैकल्पिक कॉन्फ़िगरेशन ऑब्जेक्ट.

यह विधि किसी फ़ाइल में अतुल्यकालिक रूप से डेटा लिखती है। यदि फ़ाइल मौजूद है, तो यह मौजूदा सामग्री को नई सामग्री से अधिलेखित कर देती है। यदि फ़ाइल मौजूद नहीं है, तो यह इसे बनाता है और आपके द्वारा तर्क के रूप में पारित किए गए डेटा से भर देता है।

उदाहरण के लिए:

const fakeUsers = [
{
id: 1,
name: "John Doe",
username: "johndoe123",
address: {
street: "123 Main St",
city: "Anytown",
},
},
{
id: 2,
name: "Jane Smith",
username: "janesmith456",
address: {
street: "456 Elm St",
city: "Another City",
},
}
];

fs.writeFile("./users.json", JSON.stringify(fakeUsers), {
encoding: "utf-8",
flag: "w",
}).catch((error) => {
console.error('Error writing the JSON file:', error);
});

राइटफ़ाइल फ़ंक्शन में आप जो डेटा पास करते हैं वह एक स्ट्रिंग या बफर होना चाहिए, इसलिए यदि आप फ़ाइल में ऑब्जेक्ट लिखना चाहते हैं, तो आपको पहले इसे स्ट्रिंग में परिवर्तित करना होगा JSON.stringify तरीका।

एफएस मॉड्यूल के साथ JSON फ़ाइलें अद्यतन कर रहा है

एफ.एस मॉड्यूल फ़ाइलों को अद्यतन करने का कोई स्पष्ट तरीका प्रदान नहीं करता है, क्योंकि फ़ाइल लिखने से कोई भी मौजूदा डेटा अधिलेखित हो जाता है।

इसके आसपास काम करने के लिए, आप पहले फ़ाइल से मौजूदा सामग्री प्राप्त करके फ़ाइल को अपडेट कर सकते हैं फ़ाइल पढ़ें तरीका। फिर, आप मौजूदा डेटा को अपने वर्तमान डेटा में जोड़ सकते हैं और इसे अपने डेटा तर्क के रूप में पास कर सकते हैं फ़ाइल लिखें तरीका।

यहां एक फ़ंक्शन है जो उपरोक्त तर्क को लागू करता है:

const updateFile = async (filePath, data) => {
try {
const fileContents = await fs.readFile(filePath, {
encoding: "utf-8",
flag: "r",
});

const fileData = JSON.parse(fileContents);

const updatedFileData = [...fileData, ...data];

await fs.writeFile(filePath, JSON.stringify(updatedFileData), {
encoding: "utf-8",
flag: "w",
});

return"File updated successfully";
} catch (error) {
console.error('Error updating the JSON file:', error);
}
};

आप फ़ंक्शन को इस प्रकार कॉल कर सकते हैं:

updateFile("./users.json", [
{
id: 4,
name: "Jane Doe",
username: "janedoe123",
address: {
street: "123 Main St",
city: "Anytown",
},
},
{
id: 5,
name: "John Smith",
username: "johnsmith456",
address: {
street: "456 Elm St",
city: "Another City",
},
}
]).then((message) => {
console.log(message);
});

यह कोड ब्लॉक उपरोक्त जानकारी वाले उपयोगकर्ताओं को मौजूदा जानकारी से जोड़ देगा उपयोगकर्ता.json फ़ाइल।

JSON फ़ाइलों को पढ़ने और लिखने के लिए सुरक्षा संबंधी बातें

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