Was ist der Unterschied zwischen einer Expressroute node.js und einem Controller?

8

Gibt es etwas, das mit einem traditionellen Controller auf einer Expressroute anders oder leistungsfähiger ist?

Wenn Sie eine Express-App haben und Modelle definieren, wird daraus eine MVC-Anwendung oder ist mehr notwendig?

Ich frage mich nur, ob ich in meinen Node-Express-Apps zusätzliche / einfachere Funktionen verpasse, indem ich nicht auf einen legitimeren "Controller" aufrüste. Wenn es so etwas gibt.

Danke!

Bearbeiten: Um zu verdeutlichen, wenn Sie eine Route wie folgt verwenden:

%Vor%

Was unterscheidet es von einem Controller? Kann ein Controller mehr tun?

    
Ryan Endacott 17.10.2012, 21:18
quelle

1 Antwort

10

Zuallererst ist eine Route in Express Middleware, wie in connect definiert. Der Unterschied zwischen Express- und anderen Frameworks besteht darin, dass Middleware meist vor dem Controller sitzt und der Controller die Antwort beendet. Ein weiterer Grund, warum Express Middleware verwendet, liegt in der Natur von Node.js, die asynchron ist.

Sehen wir, wie ein Controller in Javascript aussehen könnte.

%Vor%

Das erste, was Sie an dieser Aktion bemerken, sind die verschachtelten Callbacks. Dies ist schwer zu testen, schwer zu lesen und wenn Sie Dinge bearbeiten müssen, müssen Sie mit Ihrem Einzug fiedeln. Also lassen Sie das beheben, indem Sie die Flusskontrolle verwenden und es flach machen.

%Vor%

In diesem Beispiel können Sie alle verschiedenen Funktionen des Stapels extrahieren und sie testen oder sogar für verschiedene Routen wiederverwenden. Sie haben vielleicht bemerkt, dass die Kontrollflussstruktur sehr nach Middleware aussieht. So können wir den Stack in unserer Route durch Middleware ersetzen.

%Vor%

Obwohl es technisch möglich sein könnte, Controller in express.js zu haben, wären Sie wahrscheinlich gezwungen, Flow-Control-Strukturen zu verwenden, die am Ende mit Middleware identisch sind.

    
Pickels 18.10.2012, 15:03
quelle