JavaScript (Node.js) में YAML के साथ कार्य
YAML (YAML Ain't Markup Language) एक मानव-पठनीय डेटा सीरियलाइज़ेशन प्रारूप है, जिसका उपयोग अक्सर कॉन्फ़िगरेशन फ़ाइलों (जैसे, Docker Compose, Kubernetes, Ansible में) के लिए किया जाता है। Node.js इकोसिस्टम में YAML के साथ काम करने के लिए दो मुख्य लाइब्रेरीज़ हैं: js-yaml (सबसे लोकप्रिय) और yaml (आधुनिक, स्ट्रीम समर्थन के साथ)।
इस लेख में हम दोनों लाइब्रेरीज़ पर विचार करेंगे, YAML को JavaScript ऑब्जेक्ट में पार्स करना, ऑब्जेक्ट को वापस YAML में सीरियलाइज़ करना, साथ ही त्रुटियों को संभालना और फ़ाइलों के साथ काम करना सीखेंगे।
लाइब्रेरीज़ की स्थापना
आरंभ करने के लिए npm के माध्यम से एक लाइब्रेरी स्थापित करें:
# js-yaml की स्थापना (अधिकांश परियोजनाओं के लिए अनुशंसित)npm install js-yaml
# अधिक आधुनिक yaml लाइब्रेरी की स्थापनाnpm install yamljs-yaml लाइब्रेरी
js-yaml Node.js में YAML के साथ काम करने के लिए सबसे परिपक्व और व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी है। यह जटिल डेटा प्रकार, टैग और कस्टम स्कीमा सहित YAML 1.2 के पूर्ण विनिर्देश का समर्थन करती है।
YAML स्ट्रिंग को पार्स करना
const yaml = require('js-yaml');
const yamlString = `server: host: localhost port: 8080 ssl: truedatabase: driver: postgresql host: db.example.com port: 5432 credentials: user: admin password: secret`;
try { const data = yaml.load(yamlString); console.log(data.server.host); // "localhost" console.log(data.database.credentials.user); // "admin"} catch (e) { console.error('YAML पार्सिंग त्रुटि:', e.message);}YAML फ़ाइल को पार्स करना
const fs = require('fs');const yaml = require('js-yaml');
try { const fileContents = fs.readFileSync('./config.yaml', 'utf8'); const data = yaml.load(fileContents); console.log(data);} catch (e) { console.error('फ़ाइल पढ़ने में त्रुटि:', e.message);}YAML में सीरियलाइज़ेशन
const yaml = require('js-yaml');
const config = { app: { name: "MyApp", version: "1.0.0" }, features: { logging: true, cache: { ttl: 3600, type: "redis" } }};
const yamlString = yaml.dump(config, { indent: 2, // 2 स्पेस का इंडेंटेशन lineWidth: 80, // अधिकतम लाइन लंबाई noRefs: true, // संदर्भों का उपयोग न करें sortKeys: true // कुंजियों को सॉर्ट करें});
console.log(yamlString);// आउटपुट:// app:// name: MyApp// version: 1.0.0// features:// cache:// ttl: 3600// type: redis// logging: trueकस्टम प्रकारों के साथ कार्य
js-yaml विशेष डेटा प्रकारों को संसाधित करने के लिए कस्टम YAML टैग का समर्थन करता है:
const yaml = require('js-yaml');
// तिथि के लिए कस्टम प्रकार बनानाconst DateType = new yaml.Type('!date', { kind: 'scalar', resolve: (data) => data.match(/^\\d{4}-\\d{2}-\\d{2}$/), construct: (data) => new Date(data), instanceOf: Date, represent: (date) => date.toISOString().split('T')[0]});
// कस्टम प्रकार के साथ स्कीमा बनानाconst CUSTOM_SCHEMA = yaml.DEFAULT_SCHEMA.extend([DateType]);
const yamlString = `event: !date 2025-12-31name: "New Year Party"`;
const data = yaml.load(yamlString, { schema: CUSTOM_SCHEMA });console.log(data.event instanceof Date); // trueconsole.log(data.event.getFullYear()); // 2025yaml लाइब्रेरी
yaml एक अधिक आधुनिक लाइब्रेरी है जो स्ट्रीम पार्सिंग और बेहतर Unicode समर्थन प्रदान करती है। यह YAML 1.2 विनिर्देश को भी लागू करती है।
मूल पार्सिंग
const YAML = require('yaml');
const doc = YAML.parse(`person: name: इवान age: 30 hobbies: - प्रोग्रामिंग - पढ़ना`);
console.log(doc.person.name); // "इवान"console.log(doc.person.hobbies[0]); // "प्रोग्रामिंग"
पुस्तकालय में भी
Mongoose JavaScript (Node.js): पूरी गाइड उदाहरणों के साथ
C++ में WebSocket: लाइब्रेरीज़ और व्यावहारिक अनुप्रयोग
Elasticsearch क्लाइंट Go (Golang) के लिए: पूर्ण गाइड
Rust में लॉगिंग: सर्वश्रेष्ठ लाइब्रेरीज़ और टूल्स का अवलोकन
Swift में XML के साथ कार्य: डेटा का पार्सिंग, निर्माण और प्रसंस्करण (iOS/macOS)