In unserem vorherigen Beitrag haben wir über die ersten Schritte mit Mongoose und MongoDB gesprochen. In diesem Beitrag zeigen wir Ihnen, wie Sie Yeoman verwenden und ein neues Mongoose/Express-Projekt für MongoDB aufbauen.
Yeoman ist ein Gerüstwerkzeug, das Projekte mit Grunt, Bower und Node gerüstet. Es gibt Zeiten, in denen Sie Boilerplate-Code ausschneiden und einfügen müssen, um ein neues Projekt zu erstellen. Genau das tut Yeoman, aber mit einem einzigen Befehl und ein paar fantastischen Generatoren.
Yeoman verwendet Grunt als Task-Runner, um Run/Build/Test-Tasks auszuführen. Wenn Sie Gulp für dasselbe verwenden möchten, können Sie sich Slush ansehen. Slush ist ebenfalls ein Scaffolding-Tool, verwendet aber Gulp als Task-Runner.
Erste Schritte mit Yeoman
Um uns das Leben zu erleichtern, werden wir einen Super Awesome Yeoman Generator namens generator-mongoose verwenden , die uns beim Einrichten eines neuen Projekts sowie beim Erstellen von Gerüstschemata helfen.
Dieser Generator verwendet Express.js als Server, HTML für die Vorlagenerstellung und einen Hauch von Bootstrap CSS, damit alles gut aussieht.
Lassen Sie uns einen neuen Ordner erstellen und ihn yoMongoose nennen. CD in den Ordner und führen Sie Folgendes aus:
Um Yeoman zu installieren:
[sudo] npm install -g yo
Generator-Mongoose installieren:
[sudo] npm install -g generator-mongoose
und schließlich, um ein neues Projekt zu erstellen, führen Sie Folgendes aus:
yo mongoose
Füllen Sie die Frage wie folgt aus:
[?] Database Name: (myDb) myTestDB [?] Database Host: (localhost) localhost [?] Database User: {hit return} [?] Database Password: {hit return} [?] Database Port: (27017) 27017 [?] Will you be using heroku? (Y/n) n
Und Yeoman wird losziehen und ein neues Projekt für Sie aufbauen. Ihre Ordnerstruktur sollte aus einem /node_modules-Ordner und einem public/bower_components-Ordner bestehen. Wenn Sie keines von beiden sehen, führen Sie bitte npm install und bower install aus.
Um die App auszuführen, führen Sie Folgendes aus:
grunt
Dadurch wird der Express-Server gestartet und die Startseite in Ihrem Standardbrowser gestartet. Die angezeigte Standardseite ist eine Liste der in der Anwendung konfigurierten Routen.
Zurück zum Ordner und eine kurze Einführung in die App.
-
Konfigurieren /db.js
Besteht aus den DB-Konfigurationen und einigen Optionen, mit denen Sie herumspielen können.
-
Modelle /post.js
Ein Beispielschema eines Blogposts. Alle anderen Modelle, die wir mit dem Untergenerator einrüsten, werden hier angezeigt.
-
öffentlich /
Bestehen aus JavaScript und CSS, die für die Benutzeroberfläche benötigt werden.
-
Routen /index.js
Besteht aus der Standardroute, die index.htmlpost.js versendet, und besteht aus 5 wichtigen Endpunkten, die Sie benötigen, um mit der Beitragssammlung zu interagieren.
li> -
Test /
Besteht aus dem Test für Postroute und seinen Methoden.
-
Aufrufe /
Besteht aus allen Vorlagen und Ansichten, die an den Client gesendet werden.
Um ein Gefühl dafür zu bekommen, wohin die Dinge in einer modularen Express-App gehen, empfehle ich, einen Blick auf Folgendes zu werfen:
config/db.js models/post.js routes/post.js app.js
Sobald Sie fertig sind, erstellen wir mithilfe des Untergenerators ein Gerüst für ein weiteres Modell namens Artikel.
Zurück zum Terminal/Prompt und ausführen:
yo mongoose:schema "article|title:String,excerpt:String,content:String,published:Boolean,created:Date"
Der obige Befehl erstellt diese 3 Dateien und führt zu:
Your creating a schema for article With the fields: title,excerpt,content,published,created starting request to schematic for test mock data... create routes/article.js create models/article.js create test/test-article.js
Die models/article.js besteht aus allen Feldern, die nach dem Pipe-Symbol im Befehl aufgeführt sind. Süß oder?
Führen Sie Folgendes aus, um das Ergebnis und eine aktualisierte Liste der Routen anzuzeigen:
grunt
Stöbern Sie in den neu generierten Dateien, und praktisch ohne Aufwand konnten wir eine Express/Mongoose-App erstellen.
Ich hoffe, Sie haben ein grundlegendes Verständnis von Scaffolding Express/Mongoose-Apps.
Danke fürs Lesen. Kommentieren Sie.
@arvindr21