Në këtë tutorial do të ndërtojmë një API REST me Node.js, Express dhe Mongoose me funksione të plota CRUD. Së pari, ne do të fillojmë me një server bazë Express. Më pas, ne do të shtojmë konfigurimin për MongoDB, do të krijojmë një model me Mongoose dhe do të ndërtojmë kontrolluesin me funksionalitetin e plotë CRUD. Së fundi, ne do të përcaktojmë rrugët RESTful për trajtimin e kërkesave tona hyrëse dhe drejtimin e tyre në veprimin e duhur të kontrolluesit.

Fillimi

Do të fillojmë duke instaluar paketat e mëposhtme npm: express, mongoose, dotenv & nodemon si DevDependency.

Më pas, ne do të konfigurojmë serverin tonë fillestar ekspres dhe do të krijojmë një rrugë të thjeshtë për t'u testuar.

Konfigurimi i Mongoose

Mongoose është mbështjellësi më i preferuar MongoDB për Node.js. Na lejon të ndërveprojmë me bazën e të dhënave MongoDB me lehtësi. Ne mund të fillojmë të lidhim serverin tonë në bazën e të dhënave tona MongoDB. (Për informacion të detajuar mbi konfigurimin e bazës së të dhënave tuaja, shikoni dokumentet MongoDB këtu)

Për t'u lidhur me DB-në, ne po përdorim metodën e integruar connect të Mongoose dhe po kalojmë në URI-në tonë të lidhjes mongodb nga variablat tanë të mjedisit.

Me lidhjen tonë të bazës së të dhënave të vendosur, ne mund të kalojmë te modeli.

Krijimi i Modelit

Në një mjedis NoSQL, çdo pjesë e vetme e të dhënave ruhet në një dokument. Dokumente të shumta me të njëjtin lloj ruhen së bashku brenda një koleksioni. Një model është një klasë që na lejon të ndërveprojmë me një koleksion specifik në bazën tonë të të dhënave.

Përcaktimi i një modeli gjithashtu kërkon që ne të përcaktojmë një skemë. Skema jonë përcakton se si duhet të duket dokumenti ynë. Edhe pse në një DB NoSQL, skema e dokumentit është plotësisht fleksibël, mongoose na ndihmon t'i mbajmë të dhënat tona më të qëndrueshme.

Le të themi se po krijojmë një API të blogut, i cili do të duhet të ketë një model Post. Modeli ynë Post do të duhet të ketë një skemë që përmban fushat që mund të shtohen në një dokument të vetëm. Për këtë shembull, ne do ta mbajmë të thjeshtë dhe do të kemi vetëm një titull, përmbajtje dhe një fushë data.

Këtu, ne kemi shtuar një direktori të re të quajtur models në projektin tonë dhe kemi krijuar një skedar të quajtur Post.js për të strehuar Skemën dhe modelin tonë mongoose. Ne përcaktojmë fushat dhe llojet e tyre përkatëse të të dhënave dhe më pas eksportojmë modelin e krijuar rishtazi bazuar në skemën që kemi përshkruar.

Krijimi i kontrolluesit

Me grupin tonë të modelit, tani mund të kalojmë te logjika e kontrolluesit. Fatmirësisht, mongoose vjen me një mori metodash që thjeshtojnë veprimet tona CRUD:

  • Krijo një postim të ri: Post.create(të dhëna)
  • Gjeni një postim sipas ID-së: findById(id)
  • Gjeni të gjitha postimet: gjeni()
  • Përditëso një postim: findByIdAndUpdate(id, të dhëna)
  • Fshi një postim: findByIdAndDelete(id)

KRIJO

LEXO

Përditëso

FSHI

Me logjikën tonë të kontrolluesit të përfunduar, ne mund të kalojmë në përcaktimin e rrugëve.

Përcaktimi i rrugëve

Në modelet e mëposhtme RESTful, ne do të ndërtojmë rrugët e mëposhtme:

Brenda një drejtorie të re rrugët, ne do të krijojmë një skedar posts.routes.js dhe do të konfigurojmë ruterin Express për të trajtuar rrugët e mësipërme dhe për t'i drejtuar ato në veprimin e duhur të kontrolluesit.

Së fundi, ne eksportojmë ruterin tonë të postimeve dhe do të na duhet ta përfshijmë atë në skedarin tonë app.js dhe t'i drejtojmë të gjitha kërkesat te '/posts' te ruteri duke shtuar rreshtin: app.use('/posts', postRouter)

Dhe me këtë API-ja jonë REST është e plotë!

Lexim/Dokumentim i mëtejshëm: