Eine leichte Middleware- und Routenhandhabungslösung für Next.js. Angetrieben von Dirext?
$ npm install connext-js
Initialisieren Sie eine neue Instanz von Connext.
const Connext = require ( 'connext-js' ) ;
const app = Connext ( ) ; Connext ist eine Middleware-Lösung für Next.js mit Syntax im Express-Stil, die sowohl globale als auch flexible Routen-spezifische Middleware unterstützt. Für Global Middleware müssen Sie einen controllers -Ordner erstellen, der eine global.js -Controller -Datei enthalten muss. Wir empfehlen auch, Controller -Dateien für Ihre andere Middleware zu erstellen, um Ihre API -Logik zu modularisieren.
Das Einstellen von Routen, die mit connext mithilfe von CONNEXT engagiert sind, ähnelt das Einstellen von Routen in Express.
Alle gültigen HTTP -Anforderungsmethoden haben Methoden im Connext -Objekt zugeordnet.
app . get ( ) ;
app . post ( ) ;
app . put ( ) ;
app . delete ( ) ;
app . head ( ) ;
app . trace ( ) ;
app . patch ( ) ;
app . options ( ) ;
app . connect ( ) ;ConNext unterstützt einen statischen oder abgefragten API -Endpunkt. Die Unterstützung für dynamisches Routing kommt in Kürze. ⚡️
In connext haben Sie Zugriff auf das in Next.js verfügbare Anforderungsobjekt, und dieser Zugriff bleibt über die Middleware-Kette bestehen- genau wie Express! Die verfügbaren Eigenschaften sind req.url , req.method und req.body .
Im Gegensatz zu Express können Sie, wenn Sie Daten speichern müssen, den Antwortobjekt mit allen Daten, die Sie speichern möchten, einen beliebigen Schlüssel hinzufügen. Dies erhöht einfach Ihr Antwortobjekt und behält dieses Objekt während des gesamten Lebenszyklus der Anfrage weiter an. EX:
response . data = JSON . stringify ( data ) ;
response . match = true ;
response . array = [ 'I' m the data you need '];Beispieldateistruktur:
├── ...
├── controllers
│ ├── global.js # required for global middleware
│ └── middleware.js # suggested for modularization of middleware functions
├── pages # required folder for routes in Next.js
│ └── api # required folder for API routes in Next.js
└── ...
Um die globale Middleware -Funktionalität von Connext zu verwenden, müssen Sie eine global.js -Datei in einem Ordner namens controllers erstellen. Der Ordner controllers muss auf der gleichen Ebene wie Ihr pages liegen und Ihre global.js -Datei muss ein Array exportieren.
connext verfügt über einen einfachen globalen integrierten Fehlerhandler, der ausgeführt wird, wenn etwas in die Aufruf von next() übergeben wird. Wenn Sie Ihren eigenen Fehlerhandler verwenden möchten, definieren Sie ihn in global.js als das letzte Element des exportierten Arrays.
global.js Beispiel
// a global middleware function
const globalOne = ( req , res , next ) => {
console . log ( 'this the first function that runs!' ) ;
return next ( ) ;
} ;
// another global middleware function
const globalTwo = ( req , res , next ) => {
console . log ( 'another one!' ) ;
return next ( ) ;
} ;
// global error handler
const errorHandler = ( err , req , res , next ) => {
return res . status ( 500 ) . send ( 'an error occurred' ) ;
} ;
// export your array of global middleware
module . exports = [ globalOne , globalTwo , errorHandler ] ; Wir empfehlen, dass Sie Ihre andere Middleware in einer oder mehreren Dateien in Ihrer controllers -Datei modularisieren, um Ihren Code lesbar und einfach zu debuggen?
Middleware.js Beispiel
const middlewareController = { } ;
middlewareController . functionOne = ( req , res , next ) => {
// middleware functionality here
return next ( ) ;
}
middlewareController . functionTwo = ( req , res , next ) => {
// middleware functionality here
return next ( ) ;
}
module . exports = middlewareController ;Wie bei Express hat jede Methode in Connext eine an sie gebundene Zeichenfolge, die mit einer gültigen HTTP -Methode korrespontiert.
Zum Beispiel: GET, DELETE, POST usw.
Um eine Route mit CONNEXT zu definieren, fügen Sie eine JavaScript -Datei in den erforderlichen api -Ordner von Next.js hinzu.
├── pages # required folder for routes in Next.js
│ └── api # required folder for API routes in Next.js
│ └── exampleRoute.js # created route file inside of API folder
Innerhalb der Routendatei
const Connext = require ( 'Connext-js' ) ;
const middleware = require ( '../../controllers/middleware' ) ;
const app = Connext ( ) ;
app . get ( '/api/exampleRoute' , middleware . one , middleware . two , ( req , res ) => {
res . status ( 200 ) . json ( res . example ) ;
} ) ;
app . post ( '/api/exampleRoute' , middleware . three , ( req , res ) => {
res . status ( 200 ) . json ( res . example ) ;
} ) ;
app . delete ( '/api/exampleRoute' , middleware . four , ( req , res ) => {
res . status ( 200 ) . json ( res . example ) ;
} ) ;
export default app ;Sara Mächte
Eli Gallipoli
Izumi Sato
Alex Kang