2013-01-24 8 views
9

Ich bin ein traditioneller C# Entwickler und in der Vergangenheit habe ich MVC mit gestuften Architekturen verwendet. Ich habe jetzt eine App mit NodeJs/Mongoose geschrieben und bin ein wenig verwirrt darüber, wie Mongoose funktioniert.Sollten Methoden für Modelle in Mongoose oder in einer separaten Schicht definiert werden?

In der Vergangenheit würde ich meine Modelle als einfache POCOs definieren, sie durch die Layer leiten und mein Repository würde all meinen Datenzugriff tun.

Mit Mungo, dass der Datenzugriff auf das Modell selbst geschieht. Sie können .save() aufrufen, statische und Instanzmethoden deklarieren, z. myModel.findAllByX(), usw. Obwohl dies eine Abkehr für mich ist, kann ich einige Pro und Con's dazu sehen.

Fehle ich hier etwas? Gibt es irgendwelche Best-Practice-Tipps oder sollte ich es einfach halten und einfach alles auf meinem Mongoose-Modell deklarieren, anstatt es auf eine andere Ebene zu übertragen?

Antwort

9

Da Mungo bereits eine Abstraktion auf der Datenbankebene ist, sollten Sie genau das tun, was Sie vermuten, und Ihre Modellabstraktionen direkt in Mungo bauen.

Das ist, was das static und method System für Mongoose-Modelle ist - das ist auch, was das Hook-System ist (Pre-init, speichern, etc). In großen Anwendungen greifen wir normalerweise nur durch benutzerdefinierte Statiken und Methoden auf unsere Mungo-Modelle zu ... in diesem Sinne könnten Sie argumentieren, dass diese Statik und die Methoden tatsächlich die "separate Schicht" bilden, die Sie gerade sprechen etwa von MVC.

Verwandte Themen