sql >> Database >  >> NoSQL >> MongoDB

Yeoman, Mongoose en MongoDB steigers

In ons vorige bericht hadden we het over aan de slag gaan met Mongoose en MongoDB. In dit bericht laten we je zien hoe je Yeoman kunt gebruiken en hoe je een nieuw Mongoose/Express-project voor MongoDB kunt opzetten.

Yeoman is een steigertool die projecten ondersteunt met Grunt, Bower en Node. Soms knip en plak je boilerplate-code om een ​​nieuw project te maken. Dit is precies wat Yeoman doet, maar met een enkele opdracht en een paar geweldige generatoren.

Yeoman gebruikt Grunt als taakuitvoerder om run/build/test-taken uit te voeren. Als je Gulp voor hetzelfde wilt gebruiken, kun je Slush bekijken. Slush is ook een steigergereedschap, maar gebruikt Gulp als taakloper.

Aan de slag met Yeoman

Om ons leven gemakkelijk te maken, gebruiken we een Super Awesome Yeoman Generator genaamd generator-mongoose , die ons zal helpen bij het opzetten van een nieuw project en ons zal helpen bij het opstellen van schema's.

Deze generator gebruikt Express.js als server, HTML voor sjablonen en een vleugje Bootstrap CSS om dingen er goed uit te laten zien.

Laten we een nieuwe map maken en deze yoMongoose noemen. CD in de map en voer het volgende uit:

Yeoman installeren:

[sudo] npm install -g yo

Om generator-mangoest te installeren:

[sudo] npm install -g generator-mongoose

en ten slotte, om een ​​nieuw project te ondersteunen, voer je uit:

yo mongoose

Vul de vraag in zoals:

[?] 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

En Yeoman gaat erop uit om een ​​nieuw project voor je op te zetten. Uw mappenstructuur moet bestaan ​​uit een map /node_modules en een public/bower_components. Als je geen van beide ziet, voer dan npm install en bower install uit.

Voer het volgende uit om de app uit te voeren:

grunt

Hiermee wordt de express-server gestart en wordt de startpagina in uw standaardbrowser geopend. De standaardpagina die u ziet, is een lijst met routes die in de applicatie zijn geconfigureerd.

Terug naar de map en laten we de app even doornemen.

  • config /db.js

    Bestaat uit de DB-configuraties en enkele opties waarmee u kunt rommelen.

  • modellen /post.js

    Een voorbeeldschema van een blogpost. Alle andere modellen die we gaan steigeren met de subgenerator zullen hier verschijnen.

  • openbaar /

    Bestaat uit de JavaScript en CSS die nodig zijn voor de gebruikersinterface.

  • routes /index.js

    Bestaat uit de standaardroute die de index.htmlpost.js zal verzenden, en bestaat uit 5 belangrijke eindpunten die je nodig hebt om te communiceren met de berichtenverzameling.

  • test /

    Bestaat uit de test voor Post-route en zijn methoden.

  • weergaven /

    Bestaat uit alle sjablonen en weergaven die naar de klant zijn verzonden.

Om een ​​idee te krijgen van waar het heen gaat in een modulaire Express-app, raad ik je aan het volgende in volgorde te bekijken:

config/db.js
models/post.js
routes/post.js
app.js

Als u klaar bent, zullen we een ander model met de naam artikelen opstellen met behulp van de subgenerator.

Terug naar terminal/prompt en uitvoeren:

yo mongoose:schema "article|title:String,excerpt:String,content:String,published:Boolean,created:Date"

De bovenstaande opdracht zal die 3 bestanden maken en resulteren in:

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

De modellen/article.js zullen bestaan ​​uit alle velden die worden vermeld na het pipe-symbool in de opdracht. Lief toch?

Voer het volgende uit om het resultaat en een bijgewerkte lijst met routes te zien:

grunt

Graaf in de nieuw gegenereerde bestanden en met vrijwel geen inspanning konden we een Express/Mongoose-app genereren.

Ik hoop dat je een basiskennis hebt van Scaffolding Express/Mongoose-apps.

Bedankt voor het lezen. Reageer.
@arvindr21


  1. Alle collecties in een mongo-database weergeven in een nodejs-script

  2. Mongodb, sharding en meerdere Windows-services

  3. Wat is er nieuw in MongoDB 4.4

  4. Wat is een goede strategie om soortgelijke woorden te groeperen?