sql >> Databasteknik >  >> NoSQL >> MongoDB

Yeoman, Mongoose och MongoDB Ställningar

I vårt tidigare inlägg pratade vi om att komma igång med Mongoose och MongoDB. I det här inlägget visar vi dig hur du använder Yeoman och bygger ett nytt Mongoose/Express-projekt för MongoDB.

Yeoman är ett ställningsverktyg som ställer ut projekt med Grunt, Bower och Node. Det finns tillfällen när det slutar med att du klipper och klistrar plattkod för att skapa ett nytt projekt. Detta är precis vad Yeoman gör, men med ett enda kommando och några fantastiska generatorer.

Yeoman använder Grunt som uppgiftslöpare för att utföra kör-/bygg-/testuppgifter. Om du vill använda Gulp till detsamma kan du kolla in Slush. Slush är också ett ställningsverktyg men använder Gulp som uppgiftslöpare.

Komma igång med Yeoman

För att göra våra liv enkla kommer vi att använda en Super Awesome Yeoman Generator som heter generator-mongoose , som kommer att hjälpa oss att sätta upp ett nytt projekt samt hjälpa oss med byggnadsställningar.

Denna generator använder Express.js som server, HTML för mallar och en nyans av Bootstrap CSS för att få saker att se bra ut.

Låt oss skapa en ny mapp och döpa den till yoMongoose. CD till mappen och kör följande:

För att installera Yeoman:

[sudo] npm install -g yo

Så här installerar du generator-mongoose:

[sudo] npm install -g generator-mongoose

och slutligen, för att bygga ett nytt projekt, kör:

yo mongoose

Fyll i frågan som:

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

Och Yeoman kommer att gå iväg och bygga ett nytt projekt åt dig. Din mappstruktur bör bestå av en /node_modules-mapp och en public/bower_components. Om du inte ser någon av dem, kör npm installation och bower install.

För att köra appen, kör:

grunt

Detta startar expressservern och startar startsidan i din standardwebbläsare. Standardsidan du ser är en lista över rutter som konfigurerats i programmet.

Tillbaka till mappen och låt oss ta en snabb genomgång av appen.

  • config /db.js

    Består av DB-konfigurationerna och några alternativ som du kan bråka med.

  • modeller /post.js

    Ett exempelschema för ett blogginlägg. Alla andra modeller som vi ska bygga med undergeneratorn kommer att visas här.

  • offentliga /

    Består av JavaScript och CSS som behövs för användargränssnittet.

  • rutter /index.js

    Består av standardrutten som skickar index.htmlpost.js, och består av 5 viktiga slutpunkter som du behöver för att interagera med inläggssamlingen.

  • test /

    Består av testet för Post-rutt och dess metoder.

  • visningar /

    Består av alla mallar och vyer som skickats till klienten.

För att få en känsla för var saker går i en modulär Express-app rekommenderar jag att du tar en titt på följande i ordning:

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

När du är klar kommer vi att bygga en annan modell med namnet artiklar med hjälp av undergeneratorn.

Tillbaka till terminal/prompt och kör:

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

Kommandot ovan skapar dessa tre filer och resulterar i:

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

Models/article.js kommer att bestå av alla fält listade efter rörsymbolen i kommandot. Söt eller hur?

För att se resultatet och en uppdaterad lista över rutter, kör:

grunt

Gräva ner i de nyligen genererade filerna, och med praktiskt taget noll ansträngning kunde vi skapa en Express/Mongoose-app.

Hoppas du har en grundläggande förståelse för Scaffolding Express/Mongoose-appar.

Tack för att du läser. Kommentera.
@arvindr21


  1. Redis och Node.js och Socket.io Frågor

  2. Gruppräkning med MongoDB med hjälp av aggregeringsramverk

  3. Vilken NoSQL-databas ska jag använda för loggning?

  4. Hur man söker i array of object i mongodb