Ich habe Probleme mit einigen der Theorien und Konventionen, die hinter einigen Node.js-Frameworks stehen. Ich bin neu bei Node.js. Ich versuche, ein Szenario einzurichten, in dem ich ein MVC-Framework habe, in dem ich eine Reihe von Controllern definiere, die grundlegende Ruhefunktionen ausführen, und einige meiner Controller-Routen erfordern eine Authentifizierung. Wenn Sie nicht authentifiziert sind, sollten Sie auf die Anmeldeseite weitergeleitet werden. Nach der Anmeldung werden Sie jedoch auf die Seite zurückgeleitet, die Sie zuvor angefordert haben. Ich habe mir eine Reihe von Tutorials angeschaut und einige der Fragen zu StackOverflow angeschaut, aber ich denke, das Problem ist, dass etwas nicht einfach klickt. Ich hoffe, dass einer von euch mir etwas von der Theorie hinter dem, was hier vor sich geht, erklären kann und mir vielleicht in die richtige Richtung für mein Problem zeigen kann. Mein Code ist unten. Mein wirkliches Problem ist, dass ich dieses nächste () Paradigma nicht wirklich verstehe. Vielleicht mache ich das alles falsch und denke falsch darüber nach. Vielleicht kannst du mir auch ein paar gute Ideen mitteilen.
======
Ich habe eine Lösung gefunden. Ich beantworte meine Frage später für alle anderen, die möglicherweise Informationen suchen und dieses Problem lösen möchten.
- Server.js
%Vor%- Personencontroller
%Vor%- Login-Controller
%Vor%- DB Middleware
%Vor%- AuthUtils.js
%Vor%Danke Jungs im Voraus. Ich liebe die Community auf StackOverflow. Ihr seid immer super, wenn ihr ein neues Stück Technik lernt.
Die Rückkehr von next
erfolgt normalerweise für die Connect
Middleware. Sie übergeben die Referenz der nächsten auszuführenden Funktion. Middleware verhält sich wie Filter oder Linked-Listed-Layer (Art von Referenz), die Ihre Funktion aufruft und durchläuft, bevor sie zu Ihren Ressourcen gelangt, Logik ausführt und dann entscheidet, die nächste Middleware zu verlassen / umzuleiten. Middleware ist möglicherweise eine Authentifizierung, wie Sie sie verwenden. Obwohl Passport
ein diskretes und gut geschriebenes Modul ist, implementieren Sie es hier als Middleware (was normal ist), was im Grunde genommen ein Authentifizierungsfilter über Ihre ensureAuthenticated
-Funktion ist: Sie haben im Grunde nur Ihre eigene Middleware erstellt (Errungenschaft freigeschaltet). Normalerweise setzen Sie alle Ihre Middleware direkt bevor Ihre Routing-Funktionen ausgeführt werden.
Was Sie als -- DB Middleware
definieren, ist keine Middleware, von dem, was ich sagen kann. Es sieht eher wie ein Modul aus, mit dem Sie getrennte Probleme versuchen (was gut ist). Ich würde das den Anfang Ihres model
Moduls nennen.
Es sieht so aus, als könnten Ihre Controller schnell außer Kontrolle geraten. Ich würde vorschlagen, Routes
zu erforschen.
Ich bin kein Experte in Bezug auf Node.js, Express.js und Passport.js, aber ich bin erfolgreich trennen Anliegen und Programmierung in einem teilweise gearbeiteten Projekt organisiert: Ссылка
Tags und Links node.js