Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
send — Node.js लाइब्रेरी जो फ़ाइलों को HTTP प्रतिक्रियाओं के रूप में स्ट्रीम करने के लिए है, जिसमें आंशिक सामग्री, सशर्त अनुरोध और कॉन्फ़िगरेबल कैशिंग हेडर का समर्थन है। वेब फ्रेमवर्क जैसे Fastify में उपयोग के लिए डिज़ाइन किया गया है। | Kitploit
उपकरण/GitHubGitHub/fastify/send
सामान्य उपयोगिताएँवेब सुरक्षाउपयोगिताएँ और फ्रेमवर्क
GitHubfastify/send

send

Node.js लाइब्रेरी जो फ़ाइलों को HTTP प्रतिक्रियाओं के रूप में स्ट्रीम करने के लिए है, जिसमें आंशिक सामग्री, सशर्त अनुरोध और कॉन्फ़िगरेबल कैशिंग हेडर का समर्थन है। वेब फ्रेमवर्क जैसे Fastify में उपयोग के लिए डिज़ाइन किया गया है।

रिपॉजिटरी देखेंवेबसाइट
151531 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

@fastify/send

CI NPM version neostandard javascript style

Send एक लाइब्रेरी है जो फ़ाइल सिस्टम से फ़ाइलों को HTTP प्रतिक्रिया के रूप में स्ट्रीम करने के लिए है, जो आंशिक प्रतिक्रियाओं (Ranges), conditional-GET negotiation (If-Match, If-Unmodified-Since, If-None-Match, If-Modified-Since), उच्च परीक्षण कवरेज, और विस्तृत घटनाओं का समर्थन करती है जिनका उपयोग आपके एप्लिकेशन या फ़्रेमवर्क में उपयुक्त कार्रवाई करने के लिए किया जा सकता है।

स्थापना

यह एक Node.js मॉड्यूल है जो npm रजिस्ट्री के माध्यम से उपलब्ध है। स्थापना npm install कमांड का उपयोग करके की जाती है:

root@kitploit:~
$ npm install @fastify/send

TypeScript

यदि TypeScript का उपयोग करना चाहते हैं तो @types/mime@3 का उपयोग करना आवश्यक है; @types/mime@4 ने mime प्रकारों को हटा दिया है।

root@kitploit:~
$ npm install -D @types/mime@3

API

root@kitploit:~
const send = require('@fastify/send')

send(req, path, [options])

दिए गए पथ के लिए statusCode, headers, और stream प्रदान करता है ताकि इसे res पर भेजा जा सके। req Node.js HTTP अनुरोध है और path भेजने के लिए urlencoded पथ है (urlencoded, वास्तविक फ़ाइल-सिस्टम पथ नहीं)।

विकल्प

acceptRanges

रेंज्ड अनुरोधों को स्वीकार करना सक्षम या अक्षम करें, डिफ़ॉल्ट true है। इसे अक्षम करने पर Accept-Ranges नहीं भेजा जाएगा और Range अनुरोध हेडर की सामग्री को अनदेखा किया जाएगा।

cacheControl

Cache-Control प्रतिक्रिया हेडर सेट करना सक्षम या अक्षम करें, डिफ़ॉल्ट true है। इसे अक्षम करने पर immutable और maxAge विकल्पों को अनदेखा किया जाएगा।

contentType

डिफ़ॉल्ट रूप से, यह लाइब्रेरी अनुरोधित फ़ाइल के फ़ाइल एक्सटेंशन के आधार पर प्रतिक्रिया का Content-Type सेट करने के लिए mime मॉड्यूल का उपयोग करती है।

इस कार्यक्षमता को अक्षम करने के लिए, contentType को false पर सेट करें। यदि अक्षम किया गया है तो Content-Type हेडर को मैन्युअल रूप से सेट करना होगा।

dotfiles

जब "डॉटफ़ाइल्स" का सामना होता है तो उनके साथ कैसे व्यवहार किया जाए यह सेट करें। डॉटफ़ाइल एक फ़ाइल या निर्देशिका है जो डॉट (".") से शुरू होती है। ध्यान दें कि यह जाँच पथ पर ही की जाती है बिना यह देखे कि पथ डिस्क पर मौजूद है या नहीं। यदि root निर्दिष्ट है, तो केवल रूट के ऊपर के डॉटफ़ाइल्स की जाँच की जाती है (अर्थात रूट स्वयं एक डॉटफ़ाइल के अंदर हो सकता है जब इसे "deny" पर सेट किया गया हो)।

  • 'allow' डॉटफ़ाइल्स के लिए कोई विशेष उपचार नहीं।
  • 'deny' किसी भी डॉटफ़ाइल के अनुरोध के लिए 403 भेजें।
  • 'ignore' ऐसा दिखाएँ जैसे डॉटफ़ाइल मौजूद नहीं है और 404 भेजें।

डिफ़ॉल्ट मान 'ignore' के समान है, इस अपवाद के साथ कि यह डिफ़ॉल्ट डॉट से शुरू होने वाली निर्देशिका के अंदर की फ़ाइलों को अनदेखा नहीं करेगा, पिछड़ी-संगतता के लिए।

end

बाइट ऑफ़सेट जिस पर स्ट्रीम समाप्त होती है, डिफ़ॉल्ट फ़ाइल की लंबाई माइनस 1 है। अंत स्ट्रीम में शामिल है, जिसका अर्थ है end: 3 स्ट्रीम में चौथा बाइट शामिल करेगा।

etag

etag जनरेशन को सक्षम या अक्षम करें, डिफ़ॉल्ट true है।

extensions

यदि दी गई फ़ाइल मौजूद नहीं है, तो दिए गए एक्सटेंशन को दिए गए क्रम में जोड़ने का प्रयास करें। डिफ़ॉल्ट रूप से, यह अक्षम है (false पर सेट)। एक उदाहरण मान जो एक्सटेंशन-रहित HTML फ़ाइलों की सेवा करेगा: ['html', 'htm']। यदि अनुरोधित फ़ाइल में पहले से ही एक एक्सटेंशन है तो इसे छोड़ दिया जाता है।

immutable

Cache-Control प्रतिक्रिया हेडर में immutable निर्देश को सक्षम या अक्षम करें, डिफ़ॉल्ट false है। यदि true पर सेट किया गया है, तो कैशिंग सक्षम करने के लिए maxAge विकल्प भी निर्दिष्ट किया जाना चाहिए। immutable निर्देश समर्थित क्लाइंट को maxAge विकल्प के जीवनकाल के दौरान यह जाँचने के लिए सशर्त अनुरोध करने से रोकेगा कि फ़ाइल बदली है या नहीं।

index

डिफ़ॉल्ट रूप से send "index.html" फ़ाइलों का समर्थन करता है, इसे अक्षम करने के लिए false सेट करें या एक नया इंडेक्स प्रदान करने के लिए पसंदीदा क्रम में एक स्ट्रिंग या सरणी पास करें।

lastModified

Last-Modified हेडर को सक्षम या अक्षम करें, डिफ़ॉल्ट true है। फ़ाइल सिस्टम के अंतिम संशोधित मान का उपयोग करता है।

maxAge

HTTP कैशिंग के लिए मिलीसेकंड में अधिकतम आयु प्रदान करें, डिफ़ॉल्ट 0 है। यह ms मॉड्यूल द्वारा स्वीकार किया जाने वाला एक स्ट्रिंग भी हो सकता है।

maxContentRangeChunkSize

अधिकतम प्रतिक्रिया सामग्री आकार निर्दिष्ट करें, डिफ़ॉल्ट संपूर्ण फ़ाइल आकार है। इसका उपयोग तब किया जाएगा जब acceptRanges true हो।

root

फ़ाइलों को path के सापेक्ष परोसें।

start

बाइट ऑफ़सेट जिस पर स्ट्रीम शुरू होती है, डिफ़ॉल्ट 0 है। शुरुआत शामिल है, जिसका अर्थ है start: 2 स्ट्रीम में तीसरा बाइट शामिल करेगा।

highWaterMark

जब प्रदान किया जाता है, तो यह विकल्प अंतर्निहित संसाधन से पढ़ने को रोकने से पहले आंतरिक बफर द्वारा रखे जाने वाले बाइट्स की अधिकतम संख्या निर्धारित करता है। यदि आप इस विकल्प को छोड़ते हैं (या undefined पास करते हैं), तो Node.js पठनीय बाइनरी स्ट्रीम के लिए अपने अंतर्निहित डिफ़ॉल्ट पर वापस आ जाता है।

.mime

mime निर्यात mime npm मॉड्यूल का वैश्विक उदाहरण है।

इसका उपयोग MIME प्रकारों को कॉन्फ़िगर करने के लिए किया जाता है जो फ़ाइल एक्सटेंशन से जुड़े होते हैं, साथ ही फ़ाइल के MIME प्रकार को हल करने के अन्य विकल्पों (जैसे अज्ञात फ़ाइल एक्सटेंशन के लिए उपयोग करने के लिए डिफ़ॉल्ट प्रकार) के लिए किया जाता है।

कैशिंग

यह आंतरिक कैशिंग नहीं करता है, आपको इसके लिए Varnish जैसे रिवर्स प्रॉक्सी कैश, या CDN नामक उन फैंसी चीज़ों का उपयोग करना चाहिए। यदि आपका एप्लिकेशन इतना छोटा है कि वह सिंगल-नोड मेमोरी कैशिंग से लाभान्वित हो सकता है, तो वह इतना छोटा है कि उसे किसी कैशिंग की आवश्यकता ही नहीं है ;)।

डीबगिंग

debug() इंस्ट्रुमेंटेशन आउटपुट सक्षम करने के लिए NODE_DEBUG निर्यात करें:

root@kitploit:~
$ NODE_DEBUG=send node app

परीक्षण चलाना

root@kitploit:~
$ npm install
$ npm test

उदाहरण

एक विशिष्ट फ़ाइल परोसें

यह सरल उदाहरण सभी अनुरोधों पर एक विशिष्ट फ़ाइल भेजेगा।

root@kitploit:~
const http = require('node:http')
const send = require('send')

const server = http.createServer(async function onRequest (req, res) {
  const { statusCode, headers, stream } = await send(req, '/path/to/index.html')
  res.writeHead(statusCode, headers)
  stream.pipe(res)
})

server.listen(3000)

किसी निर्देशिका से सभी फ़ाइलें परोसें

यह सरल उदाहरण किसी दी गई निर्देशिका की सभी फ़ाइलों को शीर्ष-स्तर के रूप में परोसेगा। उदाहरण के लिए, एक अनुरोध GET /foo.txt /www/public/foo.txt वापस भेजेगा।

root@kitploit:~
const http = require('node:http')
const parseUrl = require('parseurl')
const send = require('@fastify/send')

const server = http.createServer(async function onRequest (req, res) {
  const { statusCode, headers, stream } = await send(req, parseUrl(req).pathname, { root: '/www/public' })
  res.writeHead(statusCode, headers)
  stream.pipe(res)
})

server.listen(3000)

कस्टम फ़ाइल प्रकार

root@kitploit:~
const http = require('node:http')
const parseUrl = require('parseurl')
const send = require('@fastify/send')

// Default unknown types to text/plain
send.mime.default_type = 'text/plain'

// Add a custom type
send.mime.define({
  'application/x-my-type': ['x-mt', 'x-mtt']
})

const server = http.createServer(function onRequest (req, res) {
  const { statusCode, headers, stream } = await send(req, parseUrl(req).pathname, { root: '/www/public' })
  res.writeHead(statusCode, headers)
  stream.pipe(res)
})

server.listen(3000)

कस्टम निर्देशिका सूचकांक दृश्य

यह निर्देशिकाओं की संरचना को एक कस्टम फ़ंक्शन के साथ परोसने का एक उदाहरण है जो किसी निर्देशिका की सूची प्रस्तुत करता है।

root@kitploit:~
const http = require('node:http')
const fs = require('node:fs')
const parseUrl = require('parseurl')
const send = require('@fastify/send')

// Transfer arbitrary files from within /www/example.com/public/*
// with a custom handler for directory listing
const server = http.createServer(async function onRequest (req, res) {
  const { statusCode, headers, stream, type, metadata } = await send(req, parseUrl(req).pathname, { index: false, root: '/www/public' })
  if(type === 'directory') {
    // get directory list
    const list = await readdir(metadata.path)
    // render an index for the directory
    res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' })
    res.end(list.join('\n') + '\n')
  } else {
    res.writeHead(statusCode, headers)
    stream.pipe(res)
  }
})

server.listen(3000)

कस्टम त्रुटि-हैंडलिंग के साथ रूट निर्देशिका से परोसना

root@kitploit:~
const http = require('node:http')
const parseUrl = require('parseurl')
const send = require('@fastify/send')

const server = http.createServer(async function onRequest (req, res) {
  // transfer arbitrary files from within
  // /www/example.com/public/*
  const { statusCode, headers, stream, type, metadata } = await send(req, parseUrl(req).pathname, { root: '/www/public' })
  switch (type) {
    case 'directory': {
      // your custom directory handling logic:
      res.writeHead(301, {
        'Location': metadata.requestPath + '/'
      })
      res.end('Redirecting to ' + metadata.requestPath + '/')
      break
    }
    case 'error': {
      // your custom error-handling logic:
      res.writeHead(metadata.error.status ?? 500, {})
      res.end(metadata.error.message)
      break
    }
    default: {
      // your custom headers
      // serve all files for download
      res.setHeader('Content-Disposition', 'attachment')
      res.writeHead(statusCode, headers)
      stream.pipe(res)
    }
  }
})

server.listen(3000)

लाइसेंस

MIT के तहत लाइसेंस प्राप्त।

टूल डाउनलोड करें