Εισαγωγή στο NestJS [+6 Learning Resources]

Το NestJS είναι ένα προοδευτικό πλαίσιο Node.js για τη δημιουργία επεκτάσιμων, αποτελεσματικών και αξιόπιστων εφαρμογών από την πλευρά του διακομιστή.

Το NestJS δημιουργήθηκε για να εξαλείψει τις αποδιοργανωμένες βάσεις κωδικών. Η αρθρωτή δομή του καθιστά εύκολη την οργάνωση του κώδικα σε διαφορετικές μονάδες.

Το NestJS είναι χτισμένο σε Typescript και χρησιμοποιεί ExpressJS κάτω από την κουκούλα. Το NestJS λατρεύεται από προγραμματιστές που θέλουν να επωφεληθούν από τη δύναμη ελέγχου τύπου του TypeScript. Το NestJS συνδυάζει διαφορετικές πτυχές του Functional Reactive Programming (FRP), Object Oriented Programming (OOP) και Functional Programming (FP).

Γιατί NestJS;

Το NestJS είναι φιλικό προς τους αρχάριους καθώς έχει καλή δομή και εύχρηστα εργαλεία διεπαφής γραμμής εντολών (CLI). Οι προγραμματιστές μπορούν έτσι να δημιουργήσουν ένα νέο χαρακτηριστικό με μία μόνο εντολή ενώ χρησιμοποιούν αυτό το πλαίσιο Node.js.

Η NestJS παρέχει τη μονάδα, την υπηρεσία, τον ελεγκτή και το δοκιμαστικό σωρό για να ξεκινήσετε. Μπορείτε επίσης να αξιοποιήσετε τις πολλές πλάκες και τα πρότυπα που είναι διαθέσιμα για να διευκολύνετε το ταξίδι ανάπτυξής σας.

Η καμπύλη εκμάθησης για το NestJS θα είναι εύκολη για όσους συνομιλούν με βρόχους, σύνταξη και συνθήκες σε JavaScript και Angular.

Χαρακτηριστικά του NestJS

Χτισμένο σε Typescript

Το NestJS είναι χτισμένο σε Typescript, έναν εκθέτη της JavaScript. Το Typescript παρέχει καλύτερη εμπειρία ανάπτυξης, καθώς δεν χρειάζεται να ελέγχετε χειροκίνητα τα σφάλματα κάθε φορά που αλλάζετε κάτι στον κώδικα. Το Typescript ουσιαστικά προσφέρει όλες τις δυνατότητες της JavaScript, αλλά συνοδεύεται και από ορισμένες πρόσθετες λειτουργίες.

Δοχείο έγχυσης εξάρτησης

Η ένεση εξάρτησης διαχωρίζει την αρχικοποίηση των αντικειμένων που χρησιμοποιεί η κλάση από την ίδια την κλάση. Σε μια τέτοια περίπτωση, η κλάση ονομάζεται «πελάτης» ενώ οι εξαρτήσεις κλάσης είναι γνωστές ως «υπηρεσίες». Αυτό το ενσωματωμένο DI στο NestJS κάνει τις εφαρμογές πιο αποτελεσματικές και αρθρωτές.

Ισχυρή διεπαφή γραμμής εντολών (CLI)

Μπορείτε να αρχικοποιήσετε, να αναπτύξετε και να διατηρήσετε όλες τις εφαρμογές σας NestJS χρησιμοποιώντας το NestCLI. Υπάρχουν πολλά πράγματα που μπορείτε να κάνετε χρησιμοποιώντας το Nest CLI, όπως:

  • Σκαλωσιά του έργου
  • Εξυπηρέτηση του έργου σε λειτουργία ανάπτυξης
  • Δημιουργήστε και ομαδοποιήστε την εφαρμογή για διανομή παραγωγής
  9 Node.js Logger Libraries Μπορείτε να δοκιμάσετε για καλύτερη καταγραφή

Modularization

Κάθε εφαρμογή NestJS έχει τουλάχιστον μία λειτουργική μονάδα. Η ενότητα «root» είναι η πιο βασική. Σε μια τυπική εφαρμογή NestJS, κάθε λογικό μέρος της εφαρμογής θα βρίσκεται στο ίδιο όριο τομέα (module). Μια τέτοια ρύθμιση καθιστά εύκολη την οργάνωση στοιχείων όπου μια εφαρμογή θα έχει πολλαπλές ενότητες με ένα στενά συνδεδεμένο σύνολο δυνατοτήτων.

Δοκιμή μονάδων

Οι αυτοματοποιημένες δοκιμές συνοδεύονται από πολλά οφέλη. Ωστόσο, η διαδικασία ορισμού τέτοιων δοκιμών μπορεί να είναι πολύ πιο συνεπής. Το NestJS διαθέτει διάφορες δυνατότητες που βοηθούν τις ομάδες να δημιουργούν και να αυτοματοποιούν δοκιμές. Το καλό με το NestJS είναι ότι μπορεί να χρησιμοποιηθεί με διάφορα εργαλεία δοκιμών. Το σύστημα έγχυσης εξάρτησης Nest διατίθεται κατά τη διάρκεια των δοκιμών για να κοροϊδεύει εύκολα εξαρτήματα.

Αγωνιστική βάση δεδομένων

Μπορείτε εύκολα να ενσωματωθείτε με οποιαδήποτε βάση δεδομένων SQL ή NoSQL με βάση τις ανάγκες και τις προτιμήσεις σας όταν εργάζεστε με το NestJS. Η σύνδεση του NestJS σε μια βάση δεδομένων είναι πολύ απλή, καθώς χρειάζεται απλώς να φορτώσετε ένα κατάλληλο πρόγραμμα οδήγησης Node.js.

Υποστήριξη διαφόρων βιβλιοθηκών

Το NestJS είναι συμβατό με διάφορα εργαλεία, τα οποία επιταχύνουν την ανάπτυξη εφαρμογών. Αυτό το πλαίσιο υποστηρίζει Logging, Validation, Caching, WebSockets, TypeORM, Mongoose και GraphQL χωρίς επιπλέον ρυθμίσεις.

Αρχιτεκτονική και ροή εργασίας του NestJS

Το NestJS έχει μια αρχιτεκτονική 3 επιπέδων που αποτελείται από ελεγκτές, παρόχους και λειτουργικές μονάδες. Οι προγραμματιστές μπορούν έτσι να δημιουργήσουν καθαρό κώδικα που δεν επικαλύπτεται.

Πηγή εικόνας: betterprogramming

Ελεγκτές

Οι ελεγκτές στο NestJS χρησιμεύουν ως γέφυρα μεταξύ αιτημάτων πελατών και απαντήσεων. Ο μηχανισμός δρομολόγησης θα κατευθύνει πάντα το αίτημα σε έναν κατάλληλο ελεγκτή όποτε υποβάλλεται αίτημα HTTP. Το πλαίσιο χρησιμοποιεί διακοσμητές και τάξεις για τη δημιουργία ελεγκτών. Στη συνέχεια, κάθε μέθοδος κλάσης αντιστοιχίζεται σε διαδρομές για να λάβει ένα συγκεκριμένο αίτημα.

Παρόχους

Οι πάροχοι μπορούν να περιγραφούν ως τα θεμελιώδη στοιχεία του NestJS. Οι πάροχοι εγχέονται ως εξαρτήσεις και δημιουργούν σχέσεις μεταξύ διαφόρων αντικειμένων. Οι τάξεις στο NestJS, όπως οι βοηθοί, οι υπηρεσίες ή τα αποθετήρια, μπορούν να αντιμετωπίζονται ως πάροχοι μόλις προστεθεί ο διακοσμητής «@Injectable()». Τέτοιοι πάροχοι μπορούν επίσης να εισαχθούν σε μια κλάση μέσω του κατασκευαστή και το NestJS θα επιλύσει τις εξαρτήσεις.

Ενότητες

Μια ενότητα στο NestJS συγκεντρώνει ένα στενά συνδεδεμένο σύνολο δυνατοτήτων. Κάθε εφαρμογή NestJS έχει μια λειτουργική μονάδα root που χρησιμοποιείται ως σημείο εισόδου. Η χρήση πολλαπλών λειτουργικών μονάδων συνιστάται ιδιαίτερα εάν θέλετε να έχετε οργανωμένο και ευανάγνωστο κώδικα. Ο διακοσμητής `@Module()` της Nest ορίζει μια λειτουργική μονάδα και παρέχει επίσης πληροφορίες όπως εξαρτήσεις, ελεγκτές και παρόχους για τη χρήση αυτής της λειτουργικής μονάδας.

  Πώς να συνδέσετε στο Excel

Ξεκινώντας με το NestJS

Βεβαιωθείτε ότι το Node.js και το npm είναι εγκατεστημένα. Χρειάζεστε ένα περιβάλλον χρόνου εκτέλεσης και το Node.js είναι τέλειο για αυτήν τη ρύθμιση. Χρειάζεστε έκδοση >= 12, εκτός από την έκδοση 13. Μπορείτε να ελέγξετε εάν έχετε εγκαταστήσει το Node.js και το npm μέσω αυτών των εντολών.

node -v
npm -v

Εάν είναι εγκατεστημένα και τα δύο, θα λάβετε μια έξοδο κοντά σε αυτό

Αν δεν τα έχετε εγκαταστήστε τα μέσω της επίσημης σελίδας. Ευτυχώς, τόσο το Node.js όσο και το npm εγκαθίστανται μαζί.

  • Εγκαταστήστε το Nest CLI. Χρησιμοποιήστε τις ακόλουθες εντολές για να ορίσετε το CLI και το έργο.
npm i -g @nestjs/cli
nest new project-name

Επιλέγουμε το όνομα του έργου ως mynestapp για λόγους επίδειξης. Το NestJS σας δίνει την ευκαιρία να εργαστείτε είτε με Typescript είτε με Vanilla JavaScript. Επιλέξτε αυτό που σας ταιριάζει και πατήστε enter. Μόλις ολοκληρωθεί η σκαλωσιά της εφαρμογής, θα ρυθμιστεί η δομή του αρχείου και ο φάκελος ‘src’ θα συνοδεύεται από πολλά βασικά αρχεία, όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης

  • Εκτελέστε την εφαρμογή/το πρώτο σας hello world

Μόλις ολοκληρωθεί η εγκατάσταση, εκτελέστε αυτές τις εντολές για να εκτελέσετε τον διακομιστή ανάπτυξης

cd mynestapp
npm run start

Πληκτρολογήστε http://localhost:3000/ στο πρόγραμμα περιήγησής σας και το πρώτο σας “Hello World” στο NestJs θα πρέπει να εμφανίζεται

NestJS: Πλεονεκτήματα

  • Εύκολο στην εκμάθηση. Είναι εύκολο να κατακτήσετε το NestJS, ειδικά αν είστε από την Angular ή έχετε γενική κατανόηση της JavaScript. Η λεπτομερής τεκμηρίωση καθιστά επίσης εύκολο τον έλεγχο της εργασίας με αυτό το ισχυρό πλαίσιο.
  • Εύκαμπτος. Μπορείτε να δημιουργήσετε πολλά πράγματα χρησιμοποιώντας το NestJS. Μπορείτε να δημιουργήσετε εφαρμογές MVC, εφαρμογές GraphQL, RESTful API και υποδοχές Ιστού χρησιμοποιώντας αυτό το πλαίσιο Node.js.
  • Συνοδεύεται από χιλιάδες ενότητες. Οι μονάδες που υποστηρίζονται από την κοινότητα διευκολύνουν τους προγραμματιστές να δομούν διαφορετικές λειτουργίες κατά τη δημιουργία εφαρμογών από την πλευρά του διακομιστή.
  • Γρήγορη ανάπτυξη και καλή αρχιτεκτονική. Δεν χρειάζεται να δημιουργείτε τα πάντα από την αρχή όταν εργάζεστε με το NestJS. Ωστόσο, το ίδιο πλαίσιο έχει μια σταθερή αρχιτεκτονική για να διευκολύνει την κατανόηση του κώδικά σας.

NestJS: Μειονεκτήματα

  • Δεν είναι ευνοϊκό για όσους έχουν υπόβαθρο TypeScript και Angular. Το NestJS δανείζεται πολλά από την αρχιτεκτονική Angular και όσοι δεν έχουν τέτοιες γνώσεις μπορεί να χρειαστούν χρόνο για να κατανοήσουν τη σύνταξη και τη δομή.
  • Έλλειψη σε ορισμένους τομείς. Το NestJS είναι ακόμα νέο και ενδέχεται να μην ανταγωνίζεται ευνοϊκά ορισμένα καθιερωμένα πλαίσια που βασίζονται σε Python και GO.
  Πώς να προσθέσετε μουσική στο Kodi

Εταιρείες που χρησιμοποιούν NestJS

#1. Adidas

Η Adidas, κατασκευαστής υποδημάτων και σχεδιαστής, είναι μεταξύ των εταιρειών που χρησιμοποιούν το NestJS. Τα εκπληκτικά χαρακτηριστικά του NestJS πρέπει να έχουν προσελκύσει αυτόν τον γίγαντα των παπουτσιών για να το χρησιμοποιήσει στο πίσω μέρος του.

#2. Capgemini

Η Capgemini είναι μια γαλλική πολυεθνική που προσφέρει συμβουλευτικές υπηρεσίες, τεχνολογία, outsourcing και επαγγελματικές υπηρεσίες. Αυτή η εταιρεία χρησιμοποιεί το NestJS στη στοίβα τεχνολογίας της.

#3. Roche

Η Roche είναι μια πολυεθνική εταιρεία υγειονομικής περίθαλψης που έχει δύο τμήματα. φαρμακευτικά και διαγνωστικά. Η Roche χρησιμοποιεί το NestJS ως μία από τις στοίβες τεχνολογίας στον κύριο ιστότοπο της.

Πόροι μάθησης

#1. NestJS Zero to Hero

Το NestJS Zero to Hero διδάσκει στους προγραμματιστές πώς να δημιουργούν και να αναπτύσσουν εταιρικές εφαρμογές back-end χρησιμοποιώντας Typescript και Node.js. Το μάθημα διδάσκει πώς να δημιουργείτε API, εξουσιοδότηση και έλεγχο ταυτότητας, εφαρμογές Nest δοκιμής μονάδας και TypeORM για αλληλεπίδραση με βάση δεδομένων, μεταξύ πολλών άλλων.

#2. NestJS: Ο πλήρης οδηγός προγραμματιστή

Αυτό το μάθημα διδάσκει στους προγραμματιστές πώς να δημιουργούν backend API χρησιμοποιώντας Nest, TypeScript και TypeORM. Αυτός ο πλήρης οδηγός έχει όλα όσα χρειάζεστε από τη ρύθμιση της κωδικοποίησης της εφαρμογής NestJS, τη δοκιμή και την ανάπτυξη. Θα έχετε επίσης μια κατανόηση πίσω από τα παρασκήνια του πλαισίου ιστού NestJS.

#3. Master NestJS

Το Master NestJS διδάσκει πώς να αναπτύσσετε εφαρμογές Node.js εταιρικής ποιότητας χρησιμοποιώντας το TypeScript. Το μάθημα διδάσκει επικύρωση και σειριοποίηση δεδομένων, πώς λειτουργούν τα διακριτικά JWT, πώς να χρησιμοποιείτε το NestCLI και σύγχρονη αφαίρεση βάσης δεδομένων, μεταξύ πολλών άλλων.

#4. NestJs στην πράξη (με MongoDB)

Το NestJS στην πράξη διδάσκει όλα όσα χρειάζεται να μάθετε για το NestJS, από Modules, Controllers, GuardsServices, Pipes και Middleware. Το μάθημα ακολουθεί μια προσέγγιση βασισμένη σε έργο, όπου κωδικοποιείτε και φιλοξενείτε τον κώδικά σας στο GitHub με αρχεία zip με δυνατότητα λήψης για κάθε ενότητα.

#5. Nest.js: Ένα προοδευτικό πλαίσιο Node.js

Αυτό το βιβλίο εισάγει τους προγραμματιστές στο NestJS και πώς να αξιοποιήσουν το JavaScript και το TypeScript. Το βιβλίο έχει σχεδιαστεί σε μια μορφή πώς να διασφαλίσει ότι μπορείτε να ρυθμίσετε και να εκτελέσετε την εφαρμογή NestJS σας σε ελάχιστο χρόνο.

#6. Πρακτικό Nest.js: Αναπτύξτε καθαρές εφαρμογές web MVC

Το πρακτικό βιβλίο Nest.js χρησιμοποιεί μια προσέγγιση βάσει έργου για τη δημιουργία μιας εφαρμογής ηλεκτρονικού καταστήματος που χρησιμοποιεί διάφορες δυνατότητες NestJS. Το βιβλίο περιλαμβάνει σύντομες συζητήσεις, συμβουλές και χρήσιμες φράσεις κατά τη δημιουργία της εφαρμογής NestJS.

συμπέρασμα

Εκτός από ένα ισχυρό πλαίσιο Node.js, το NestJS είναι επίσης ένα από τα πιο δημοφιλή πλαίσια Typescript για εφαρμογές διακομιστή σήμερα. Το γεγονός ότι προσφέρει βέλτιστες πρακτικές κωδικοποίησης και μια τυπική αρχιτεκτονική ανάπτυξης το έχει κάνει να προσελκύει πολλούς μηχανικούς που θέλουν να επικεντρωθούν στην κατασκευή επιχειρηματικής λογικής κατά την κατασκευή εφαρμογών.