Fastify JavaScript (Node.js): पूर्ण गाइड उदाहरण सहित
1. यह क्या है और इसकी आवश्यकता क्यों है
Fastify एक हाई-परफॉर्मेंस वेब फ्रेमवर्क है Node.js के लिए, जो Hapi और Express से प्रेरित है, लेकिन इसका मुख्य फोकस स्पीड और कम मेमोरी खपत पर है। इसे 2016 में NearForm टीम के डेवलपर्स ने बनाया था और तब से यह JavaScript/TypeScript में REST API, माइक्रोसर्विसेज और वेब एप्लिकेशन बनाने के लिए सबसे तेज़ समाधानों में से एक बन गया है।
Fastify का उपयोग करने का मुख्य कारण इसकी परफॉर्मेंस है। टेस्ट के अनुसार, यह समान संसाधन खपत पर Express की तुलना में प्रति सेकंड 30-40% अधिक रिक्वेस्ट प्रोसेस कर सकता है। यह Node.js streams पर आधारित एसिंक्रोनस आर्किटेक्चर, fast-json-stringify के माध्यम से कुशल JSON पार्सिंग और Radix Tree (संपीड़ित प्रीफिक्स ट्री) पर आधारित ऑप्टिमाइज़्ड राउटर के कारण संभव होता है।
गति के अलावा, Fastify में JSON Schema के माध्यम से बिल्ट-इन वैलिडेशन, ऑटोमैटिक रिस्पॉन्स कैशिंग, आउट-ऑफ-द-बॉक्स TypeScript सपोर्ट, एक विस्तार योग्य प्लगइन सिस्टम और शानदार डॉक्यूमेंटेशन शामिल है। यह इसे प्रोडक्शन प्रोजेक्ट्स के लिए आदर्श बनाता है जहां स्थिरता और लोड के तहत पूर्वानुमानित प्रदर्शन महत्वपूर्ण है।
2. इंस्टॉलेशन
Fastify को npm (Node Package Manager) के माध्यम से इंस्टॉल किया जाता है। सुनिश्चित करें कि आपके पास Node.js संस्करण 18 या उससे ऊपर (LTS अनुशंसित) इंस्टॉल है।
# बेसिक इंस्टॉलेशन
npm install fastify
# TypeScript के लिए (अतिरिक्त)
npm install -D @types/node typescript
# कुकी, सत्र आदि के साथ काम करने के लिए
npm install @fastify/cookie @fastify/session
यदि आप yarn या pnpm का उपयोग कर रहे हैं:
yarn add fastify
# या
pnpm add fastify
3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण
एक फ़ाइल server.js बनाएं और इसे node server.js के माध्यम से चलाएं।
// server.js
const fastify = require('fastify')({
logger: true // बिल्ट-इन लॉगर (pino) चालू करें
});
// GET / रूट परिभाषित करें
fastify.get('/', async (request, reply) => {
return { hello: 'world' };
});
// सर्वर शुरू करें
const start = async () => {
try {
await fastify.listen({ port: 3000 });
console.log('सर्वर http://localhost:3000 पर चालू है');
} catch (err) {
fastify.log.error(err);
process.exit(1);
}
};
start();
शुरू करने के बाद, ब्राउज़र खोलें या curl http://localhost:3000 चलाएं। आपको JSON रिस्पॉन्स {"hello":"world"} मिलेगा।
4. मुख्य तरीके/फंक्शन/क्लास
4.1. fastify.get(path, options, handler)
सिग्नेचर: fastify.get(path: string, opts?: RouteShorthandOptions, handler: RequestHandler)
यह क्या करता है: निर्दिष्ट पथ पर HTTP GET रिक्वेस्ट के लिए हैंडलर रजिस्टर करता है।
fastify.get('/user/:id', async (request, reply) => {
const { id } = request.params;
return { userId: id, name: 'John Doe' };
});
4.2. fastify.post(path, options, handler)
सिग्नेचर: fastify.post(path: string, opts?: RouteShorthandOptions, handler: RequestHandler)
यह क्या करता है: HTTP POST रिक्वेस्ट के लिए हैंडलर रजिस्टर करता है। ऑटोमैटिक रूप से रिक्वेस्ट बॉडी (JSON, form-data आदि) को पार्स करता है।
fastify.post('/user', async (request, reply) => {
const { name, email } = request.body;
// यूज़र को DB में सेव करें...
return { status: 'created', name, email };
});
4.3. fastify.register(plugin, opts)
सिग्नेचर: fastify.register(plugin: FastifyPluginAsync | FastifyPluginCallback, opts)
यह क्या करता है: Fastify में एक प्लगइन रजिस्टर करता है। प्लगइन्स का उपयोग फंक्शनैलिटी को मॉड्यूलराइज़ करने के लिए किया जाता है, जैसे रूट्स, मिडलवेयर, या डेटाबेस कनेक्शन।
// myPlugin.js
module.exports = async function (fastify, opts) {
fastify.get('/plugin-route', async (request, reply) => {
return { message: 'यह प्लगइन से है!' };
});
};
// server.js में
fastify.register(require('./myPlugin'));