Οδηγός Node.js για αρχάριους

Εισαγωγή στο Node.js

Η σύγχρονη διαδικτυακή εφαρμογή έχει κάνει πραγματικά πολύ δρόμο όλα αυτά τα χρόνια με την εισαγωγή πολλών δημοφιλών πλαισίων όπως το bootstrap, το Angular JS κ.λπ. Όλα αυτά τα πλαίσια βασίζονται στο δημοφιλές JavaΓραφή δομή.

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

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

Node.js Syllabus

Node.js Βασικά στοιχεία για αρχάριους

👍 Lessγια 1 Λήψη και εγκατάσταση του Node.js — Πώς να κατεβάσετε και να εγκαταστήσετε το Node.js και το NPM στο παράθυρο
👍 Lessγια 2 Οδηγός Node.js NPM — Δημιουργία, δημοσίευση, επέκταση και διαχείριση
👍 Lessγια 3 Δημιουργία διακομιστή Web HTTP στο Node.js — Εκμάθηση με Παράδειγμα Κώδικα

Node.js Advance Stuff!

👍 Lessγια 1 Οδηγός Node.js Express FrameWork — Μάθετε σε 10 λεπτά
👍 Lessγια 2 Node.js MongoDB Εκμάθηση — Ένας πλήρης οδηγός με παραδείγματα
👍 Lessγια 3 Οδηγός Node.js Promise — Ένας πλήρης οδηγός για το JavaΥποσχέσεις σεναρίου
👍 Lessγια 4 Εκμάθηση Bluebird Promises — Ένας πλήρης οδηγός για τις υποσχέσεις του Bluebird
👍 Lessγια 5 Node.js Generators — Τι είναι, Επανακλήσεις έναντι Node.js Generators
👍 Lessγια 6 Οδηγός Node js Streams — Filestream, Pipes
👍 Lessγια 7 Node.js Unit Testing Tutorial with Jasmine — Ένας πλήρης οδηγός
👍 Lessγια 8 Εκμάθηση GraphQL — Τι είναι το GraphQL; Μάθετε με το Παράδειγμα

Γνωρίστε τη διαφορά!

👍 Lessγια 1 GraphQL εναντίον REST - Ποιά είναι η διαφορά?
👍 Lessγια 2 Node.Js Vs AngularJS — Γνωρίστε τη διαφορά
👍 Lessγια 3 Node.js Vs Python - Ποιά είναι η διαφορά?

Node.js Ερωτήσεις Συνέντευξης & Εκμάθηση PDF

👍 Lessγια 1 Node.js Ερωτήσεις συνέντευξης — Κορυφαίες 25 ερωτήσεις και απαντήσεις συνέντευξης Node.js
👍 Lessγια 2 Node.js Tutorial PDF — Λήψη του Node.js Tutorial PDF για αρχάριους

Τι είναι το Node.js;

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

Το Node.js βασίζεται σε μια αρχιτεκτονική που βασίζεται σε συμβάντα και σε ένα μη αποκλειστικό Input/Output API που έχει σχεδιαστεί για τη βελτιστοποίηση της απόδοσης και της επεκτασιμότητας μιας εφαρμογής για εφαρμογές web σε πραγματικό χρόνο.

Για μεγάλο χρονικό διάστημα, το πλαίσιο που ήταν διαθέσιμο για την ανάπτυξη ιστού βασίζονταν όλα σε ένα μοντέλο ανιθαγενείας. Ένα μοντέλο χωρίς κατάσταση είναι όπου τα δεδομένα που δημιουργούνται σε μια περίοδο λειτουργίας (όπως πληροφορίες σχετικά με τις ρυθμίσεις χρήστη και τα συμβάντα που συνέβησαν) δεν διατηρούνται για χρήση στην επόμενη περίοδο λειτουργίας με αυτόν τον χρήστη.

Έπρεπε να γίνει πολλή δουλειά για να διατηρηθούν οι πληροφορίες συνεδρίας μεταξύ των αιτημάτων για έναν χρήστη. Αλλά με το Node.js, υπάρχει επιτέλους ένας τρόπος οι εφαρμογές Ιστού να έχουν αμφίδρομες συνδέσεις σε πραγματικό χρόνο, όπου τόσο ο πελάτης όσο και ο διακομιστής μπορούν να ξεκινήσουν την επικοινωνία, επιτρέποντάς τους να ανταλλάσσουν δεδομένα ελεύθερα.

Γιατί να χρησιμοποιήσετε το Node.js;

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

Αλλά με τις διαδικτυακές εφαρμογές Node.js, μπορείτε πλέον να εργάζεστε σε πραγματικό χρόνο και να έχετε αμφίδρομη επικοινωνία. Η κατάσταση διατηρείται και είτε ο πελάτης είτε ο διακομιστής μπορούν να ξεκινήσουν την επικοινωνία.

Χαρακτηριστικά του Node.js

Ας δούμε μερικά από τα βασικά χαρακτηριστικά του Node.js

  1. Το ασύγχρονο IO που βασίζεται σε συμβάντα βοηθά στην ταυτόχρονη διαχείριση αιτημάτων – Αυτό είναι ίσως το πιο σημαντικό σημείο πώλησης του Node.js. Αυτή η δυνατότητα ουσιαστικά σημαίνει ότι εάν ληφθεί ένα αίτημα από τον Κόμβο για κάποια λειτουργία Εισόδου/Εξόδου, θα εκτελέσει τη λειτουργία στο παρασκήνιο και θα συνεχίσει με την επεξεργασία άλλων αιτημάτων.
    Αυτό είναι αρκετά διαφορετικό από άλλες γλώσσες προγραμματισμού. Ένα απλό παράδειγμα αυτού δίνεται στον παρακάτω κώδικα
var fs = require('fs'); 
          fs.readFile("Sample.txt",function(error,data)
          {
                console.log("Reading Data completed");
     });
  • Το παραπάνω απόσπασμα κώδικα εξετάζει την ανάγνωση ενός αρχείου που ονομάζεται Sample.txt. Σε άλλες γλώσσες προγραμματισμού, η επόμενη γραμμή επεξεργασίας θα πραγματοποιηθεί μόνο μετά την ανάγνωση ολόκληρου του αρχείου.
  • Αλλά στην περίπτωση του Node.js, το σημαντικό τμήμα του κώδικα που πρέπει να παρατηρήσετε είναι η δήλωση της συνάρτησης ('function(error,data)'). Αυτό είναι γνωστό ως συνάρτηση επανάκλησης.
  • Αυτό που συμβαίνει εδώ είναι ότι η λειτουργία ανάγνωσης αρχείων θα ξεκινήσει στο παρασκήνιο. Και άλλη επεξεργασία μπορεί να συμβεί ταυτόχρονα κατά την ανάγνωση του αρχείου. Μόλις ολοκληρωθεί η λειτουργία ανάγνωσης του αρχείου, αυτή η ανώνυμη συνάρτηση θα κληθεί και το κείμενο "Η ανάγνωση δεδομένων ολοκληρώθηκε" θα γραφτεί στο αρχείο καταγραφής της κονσόλας.
  1. Το Node χρησιμοποιεί το V8 JavaScript Runtime engine, αυτός που χρησιμοποιείται από Google Chrome. Ο κόμβος έχει ένα περιτύλιγμα πάνω από το JavaΜηχανή δέσμης ενεργειών που κάνει τη μηχανή χρόνου εκτέλεσης πολύ πιο γρήγορη και ως εκ τούτου η επεξεργασία των αιτημάτων εντός του Node γίνεται επίσης ταχύτερη.
  2. Χειρισμός ταυτόχρονων αιτημάτων – Μια άλλη βασική λειτουργικότητα του Node είναι η δυνατότητα χειρισμού ταυτόχρονων συνδέσεων με πολύ ελάχιστο κόστος σε μία μόνο διαδικασία.
  3. Η βιβλιοθήκη Node.js χρησιμοποιεί JavaΣενάριο – Αυτή είναι μια άλλη σημαντική πτυχή της ανάπτυξης στο Node.js. Ένα μεγάλο μέρος της κοινότητας ανάπτυξης γνωρίζει ήδη καλά τη javascript και, ως εκ τούτου, η ανάπτυξη στο Node.js γίνεται ευκολότερη για έναν προγραμματιστή που γνωρίζει javascript.
  4. Υπάρχει μια ενεργή και ζωντανή κοινότητα για το πλαίσιο Node.js. Λόγω της ενεργής κοινότητας, υπάρχουν πάντα ενημερώσεις κλειδιών που διατίθενται στο πλαίσιο. Αυτό βοηθά να διατηρείται το πλαίσιο πάντα ενημερωμένο με τις τελευταίες τάσεις στην ανάπτυξη ιστού.

Ποιος χρησιμοποιεί το Node.js

Το Node.js χρησιμοποιείται από πολλές μεγάλες εταιρείες. Παρακάτω είναι μια λίστα με μερικά από αυτά.

  • Paypal – Πολλοί ιστότοποι εντός του Paypal έχουν επίσης ξεκινήσει τη μετάβαση στο Node.js.
  • LinkedIn – Το LinkedIn χρησιμοποιεί το Node.js για την τροφοδοσία τους Κινητό Διακομιστές που τροφοδοτούν το iPhone, Androidκαι προϊόντα Web για κινητά.
  • Η Mozilla έχει εφαρμόσει το Node.js για την υποστήριξη API του προγράμματος περιήγησης που έχει μισό δισεκατομμύριο εγκαταστάσεις.
  • Το eBay φιλοξενεί την υπηρεσία HTTP API στο Node.js

Πότε να χρησιμοποιήσετε το Node.js

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

  1. Εφαρμογές συνομιλίας
  2. Διακομιστές παιχνιδιών – Γρήγοροι και υψηλής απόδοσης διακομιστές που πρέπει να επεξεργάζονται χιλιάδες αιτήματα ταυτόχρονα, τότε αυτό είναι ένα ιδανικό πλαίσιο.
  3. Καλό για συνεργατικό περιβάλλον – Αυτό είναι καλό για περιβάλλοντα που διαχειρίζονται έγγραφα. Σε ένα περιβάλλον διαχείρισης εγγράφων, θα έχετε πολλά άτομα που δημοσιεύουν τα έγγραφά τους και κάνουν συνεχείς αλλαγές ελέγχοντας και ελέγχοντας έγγραφα. Επομένως, το Node.js είναι καλό για αυτά τα περιβάλλοντα, επειδή ο βρόχος συμβάντος στο Node.js μπορεί να ενεργοποιηθεί κάθε φορά που αλλάζουν έγγραφα σε περιβάλλον διαχείρισης εγγράφων.
  4. Διακομιστές διαφημίσεων – Και πάλι εδώ θα μπορούσατε να έχετε χιλιάδες αιτήματα για να τραβήξετε διαφημίσεις από τον κεντρικό διακομιστή και το Node.js μπορεί να είναι ένα ιδανικό πλαίσιο για να το χειριστείτε αυτό.
  5. Διακομιστές ροής – Ένα άλλο ιδανικό σενάριο για χρήση του Node είναι για διακομιστές ροής πολυμέσων όπου οι πελάτες έχουν αιτήματα για να τραβήξουν διαφορετικά περιεχόμενα πολυμέσων από αυτόν τον διακομιστή.

Το Node.js είναι καλό όταν χρειάζεστε υψηλά επίπεδα συγχρονισμού αλλά λιγότερο χρόνο αφιερωμένου στην CPU.

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

Πότε δεν πρέπει να χρησιμοποιείτε το Node.js

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

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