


Einführung in @rxliuli/vista: Eine einheitliche Request-Interceptor-Bibliothek für Fetch und XHR mit Middleware-Unterstützung.
Jan 07, 2025 am 12:19 AM
@rxliuli/vista ist eine leistungsstarke homogene Request-Interceptor-Bibliothek, die das einheitliche Abfangen von Fetch/XHR-Anfragen unterstützt. Es erm?glicht Ihnen, in verschiedenen Phasen des Anforderungslebenszyklus einzugreifen und verschiedene Funktionen wie die überwachung, ?nderung und Verspottung von Anforderungen zu erm?glichen.
Eigenschaften
- ? Unterstützt sowohl das Abfangen von Fetch- als auch XHR-Anfragen
- ? Verwenden Sie ein Middleware-Muster, flexibel und einfach zu erweitern
- ? Unterstützende Interventionen vor und nach Anfragen
- ? Ver?nderbare Anfrage- und Antwortdaten
- ? Keine Abh?ngigkeit, kompakte Gr??e
- ? Unterstützt nur die Browserumgebung
Installation
npm install @rxliuli/vista # Or yarn add @rxliuli/vista # Or pnpm add @rxliuli/vista
Grundlegende Verwendung
import { Vista } from '@rxliuli/vista' new Vista() .use(async (c, next) => { console.log('Request started:', c.req.url) await next() }) .use(async (c, next) => { await next() console.log('Response data:', await c.res.clone().text()) }) .intercept()
Erweiterte Anwendungsf?lle
Fügen Sie globale Anforderungsheader hinzu
new Vista() .use(async (c, next) => { c.req.headers.set('Authorization', 'Bearer token') await next() }) .intercept()
Anforderungsergebnis-Cache
const cache = new Map() new Vista() .use(async (c, next) => { const key = c.req.url if (cache.has(key)) { c.res = cache.get(key).clone() return } await next() cache.set(key, c.res.clone()) }) .intercept()
Die Anfrage ist fehlgeschlagen. Bitte versuchen Sie es erneut
new Vista() .use(async (c, next) => { const maxRetries = 3 let retries = 0 while (retries < maxRetries) { try { await next() break } catch (err) { retries++ if (retries === maxRetries) throw err } } }) .intercept()
Dynamische ?nderungsreaktion
new Vista() .use(async (c, next) => { await next() if (c.req.url === 'https://example.com/example') { const json = await c.res.json() json.id = 2 c.res = new Response(JSON.stringify(json), c.res) } }) .intercept()
API-Referenz
Vista-Klasse
Haupt-Interceptor-Klasse, die die folgenden Methoden bereitstellt:
- use(middleware): Middleware hinzufügen
- intercept(): Beginnen Sie mit dem Abfangen von Anfragen
- destroy(): Stoppt das Abfangen von Anfragen
Middleware-Kontext
Die Middleware-Funktion erh?lt zwei Parameter:
-
Kontext: Enth?lt Anforderungs- und Antwortinformationen
- req: Objekt anfordern res: Antwortobjekt
- Typ: Anforderungstyp, fetch oder xhr
- Weiter: Rufen Sie die Funktion der n?chsten Middleware oder Originalanforderung auf
FAQ
- Wie kann man das Abfangen stoppen?
const vista = new Vista() vista.intercept() // When not needed vista.destroy()
Unterstützt es asynchrone Vorg?nge?
Ja, die Middleware unterstützt die Async/Await-Syntax.Unterstützt es das Abfangen von Anfragen in Node.js?
Nein, es unterstützt nur das Abfangen von Anfragen im Browser.
Danke
- xhook: Eine Bibliothek, die das Abfangen von xhr implementiert und für die Implementierung einiger Funktionen hilfreich ist.
- hono: Ein hervorragendes Webserver-Framework, das in seiner API viel Inspiration bietet.
Beitragsrichtlinien
Herzlich willkommen zum Einreichen von Issues und Pull Requests!
Lizenz
MIT-Lizenz
Probieren Sie es aus und teilen Sie mir Ihre Erfahrungen mit. Wir freuen uns über jeden Fehler oder Feedback zu Funktionen.
Das obige ist der detaillierte Inhalt vonEinführung in @rxliuli/vista: Eine einheitliche Request-Interceptor-Bibliothek für Fetch und XHR mit Middleware-Unterstützung.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Java und JavaScript sind unterschiedliche Programmiersprachen, die jeweils für verschiedene Anwendungsszenarien geeignet sind. Java wird für die Entwicklung gro?er Unternehmen und mobiler Anwendungen verwendet, w?hrend JavaScript haupts?chlich für die Entwicklung von Webseiten verwendet wird.

JavaScriptComents AreseessentialFormaintaining, Lesen und GuidingCodeexexecution.1) einzelne Linecommments Arequickickexplanationen.2) Multi-LindexplainComproxlogicorProvedetailedDocumentation.3) InlinecommentsclarifyspecificPartsosensofCode.BestPracticic

Die folgenden Punkte sollten bei der Verarbeitung von Daten und Zeiten in JavaScript festgestellt werden: 1. Es gibt viele M?glichkeiten, Datumsobjekte zu erstellen. Es wird empfohlen, ISO -Format -Zeichenfolgen zu verwenden, um die Kompatibilit?t sicherzustellen. 2. Die Zeitinformationen erhalten und festlegen k?nnen und setzen Sie Methoden fest, und beachten Sie, dass der Monat mit 0 beginnt. 3. Die manuell formatierende Daten sind Zeichenfolgen erforderlich, und auch Bibliotheken von Drittanbietern k?nnen verwendet werden. 4. Es wird empfohlen, Bibliotheken zu verwenden, die Zeitzonen wie Luxon unterstützen. Das Beherrschen dieser wichtigen Punkte kann h?ufige Fehler effektiv vermeiden.

PlatztagsattheBottomofabogpostorwebpageServeSpracticalPurposesforseo, Usexperience und design.1ithelpswithseobyallowingEnginestoaccessKeyword-relevantTagswithoutClutteringHemainContent.2.

JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor

JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf

Ereigniserfassung und Blase sind zwei Phasen der Ereignisausbreitung in DOM. Die Erfassung erfolgt von der oberen Schicht bis zum Zielelement, und die Blase ist vom Zielelement bis zur oberen Schicht. 1. Die Ereigniserfassung wird implementiert, indem der UseCapture -Parameter von AddEventListener auf true festgelegt wird. 2. Ereignisblase ist das Standardverhalten, Uscapture ist auf false oder weggelassen. 3. Die Ereignisausbreitung kann verwendet werden, um die Ereignisausbreitung zu verhindern. 4. Event Bubbling unterstützt die Ereignisdelegation, um die Effizienz der dynamischen Inhaltsverarbeitung zu verbessern. 5. Capture kann verwendet werden, um Ereignisse im Voraus abzufangen, wie z. B. Protokollierung oder Fehlerverarbeitung. Das Verst?ndnis dieser beiden Phasen hilft dabei, das Timing und die Reaktion von JavaScript auf Benutzeroperationen genau zu steuern.

Java und JavaScript sind verschiedene Programmiersprachen. 1.Java ist eine statisch typisierte und kompilierte Sprache, die für Unternehmensanwendungen und gro?e Systeme geeignet ist. 2. JavaScript ist ein dynamischer Typ und eine interpretierte Sprache, die haupts?chlich für die Webinteraktion und die Front-End-Entwicklung verwendet wird.
