Δημιουργία διακομιστή Web HTTP στο Node.js: Εκμάθηση με Παράδειγμα κώδικα
Το πλαίσιο Node.js χρησιμοποιείται κυρίως για τη δημιουργία εφαρμογών που βασίζονται σε διακομιστή. Το πλαίσιο μπορεί εύκολα να χρησιμοποιηθεί για τη δημιουργία διακομιστών Ιστού που μπορούν να εξυπηρετήσουν περιεχόμενο στους χρήστες.
Υπάρχει μια ποικιλία λειτουργικών μονάδων, όπως η ενότητα "http" και "request", η οποία βοηθά στην επεξεργασία αιτημάτων που σχετίζονται με διακομιστή στο χώρο του διακομιστή ιστού. Θα ρίξουμε μια ματιά στο πώς μπορούμε να δημιουργήσουμε μια βασική εφαρμογή διακομιστή ιστού χρησιμοποιώντας Κόμβος js.
Κόμβος ως διακομιστής ιστού με χρήση HTTP
Ας δούμε ένα παράδειγμα του τρόπου δημιουργίας και εκτέλεσης της πρώτης μας εφαρμογής Node js.
Η εφαρμογή μας πρόκειται να δημιουργήσει μια απλή λειτουργική μονάδα διακομιστή που θα ακούει στη θύρα αρ. 7000. Εάν υποβληθεί αίτημα μέσω του προγράμματος περιήγησης σε αυτήν τη θύρα αρ., τότε η εφαρμογή διακομιστή θα στείλει μια απάντηση «Hello World» στον πελάτη.
Επεξήγηση κώδικα
- Η βασική λειτουργικότητα της συνάρτησης απαίτησης είναι ότι διαβάζει α JavaΓραφή αρχείο, εκτελεί το αρχείο και, στη συνέχεια, προχωρά στην επιστροφή του αντικειμένου εξαγωγής. Στην περίπτωσή μας λοιπόν, αφού θέλουμε να χρησιμοποιήσουμε τη λειτουργικότητα της ενότητας http, χρησιμοποιούμε τη συνάρτηση ζήτησης για να πάρουμε τις επιθυμητές συναρτήσεις από τη λειτουργική μονάδα http ώστε να μπορεί να χρησιμοποιηθεί στην εφαρμογή μας.
- Σε αυτή τη γραμμή κώδικα, δημιουργούμε μια εφαρμογή διακομιστή που βασίζεται σε μια απλή λειτουργία. Αυτή η λειτουργία καλείται κάθε φορά που υποβάλλεται αίτημα στην εφαρμογή διακομιστή μας.
- Όταν λαμβάνεται ένα αίτημα, λέμε να στείλουμε μια απάντηση με τύπο κεφαλίδας "200". Αυτός ο αριθμός είναι η κανονική απόκριση που αποστέλλεται σε μια κεφαλίδα http όταν αποστέλλεται μια επιτυχημένη απάντηση στον πελάτη.
- Στην ίδια την απάντηση, στέλνουμε τη συμβολοσειρά "Hello World".
- Στη συνέχεια, χρησιμοποιούμε τη συνάρτηση server.listen για να κάνουμε την εφαρμογή διακομιστή μας να ακούει τα αιτήματα πελατών στη θύρα αρ. 7000. Μπορείτε να καθορίσετε οποιαδήποτε διαθέσιμη θύρα εδώ.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος όταν εκτελείτε τον κώδικά σας στο πρόγραμμα περιήγησης.
Παραγωγή
Από την έξοδο,
- Μπορείτε να δείτε ξεκάθαρα ότι εάν περιηγηθούμε στη διεύθυνση URL του localhost στη θύρα 7000, θα δείτε τη συμβολοσειρά 'Hello World' να εμφανίζεται στη σελίδα.
- Επειδή στον κώδικά μας έχουμε αναφέρει ειδικά για την ακρόαση του διακομιστή στη θύρα 7000, μπορούμε να δούμε την έξοδο κατά την περιήγηση σε αυτό το url.
Εδώ είναι ο κωδικός για την αναφορά σας
var http=require('http') var server=http.createServer((function(request,response) { response.writeHead(200, {"Content-Type" : "text/plain"}); response.end("Hello World\n"); })); server.listen(7000);
Χειρισμός αιτημάτων GET στο Node.js
Η υποβολή αιτήματος GET για λήψη δεδομένων από άλλο ιστότοπο είναι σχετικά πολύ απλή στο Node.js. Για να κάνουμε ένα αίτημα λήψης στον κόμβο, πρέπει πρώτα να έχουμε εγκαταστήσει τη μονάδα αιτήματος. Αυτό μπορεί να γίνει εκτελώντας την ακόλουθη γραμμή στη γραμμή εντολών
npm αίτημα εγκατάστασης
Η παραπάνω εντολή ζητά από τον διαχειριστή πακέτων Node να κατεβάσει τις απαιτούμενες μονάδες αιτήματος και να τις εγκαταστήσει ανάλογα.
Όταν η μονάδα npm εγκατασταθεί με επιτυχία, η γραμμή εντολών θα εμφανίσει το όνομα και την έκδοση της εγκατεστημένης μονάδας: @ .
Στο παραπάνω στιγμιότυπο, μπορείτε να δείτε ότι έγινε λήψη και εγκατάσταση της ενότητας 'αίτημα' μαζί με τον αριθμό έκδοσης 2.67.0.
Τώρα ας δούμε τον κώδικα που μπορεί να κάνει χρήση αυτής της εντολής «αίτημα».
Επεξήγηση κώδικα
- Χρησιμοποιούμε την ενότητα «αίτημα» που εγκαταστάθηκε στο τελευταίο βήμα. Αυτή η ενότητα έχει τις απαραίτητες λειτουργίες που μπορούν να χρησιμοποιηθούν για την υποβολή αιτημάτων GET σε ιστότοπους.
- Κάνουμε ένα αίτημα GET στη διεύθυνση www.google.com και στη συνέχεια καλούμε μια συνάρτηση όταν λαμβάνεται μια απάντηση. Όταν ληφθεί μια απάντηση, οι παράμετροι (σφάλμα, απόκριση και σώμα) θα έχουν τις ακόλουθες τιμές
- Σφάλμα – Σε περίπτωση που ληφθεί κάποιο σφάλμα κατά τη χρήση του αιτήματος GET, θα καταγραφεί εδώ.
- Απάντηση- Η απάντηση θα έχει τις κεφαλίδες http που αποστέλλονται πίσω στην απάντηση.
- Σώμα- Το σώμα θα περιέχει ολόκληρο το περιεχόμενο της απάντησης που αποστέλλεται από την Google.
- Σε αυτό, απλώς γράφουμε το περιεχόμενο που λαμβάνεται στην παράμετρο σώματος στο αρχείο console.log. Οπότε βασικά, ό,τι κι αν παίρνουμε πηγαίνοντας www.google.com θα γραφτεί στο console.log.
Εδώ είναι ο κωδικός για την αναφορά σας
var request = require("request"); request("http://www.google.com",function(error,response,body) { console.log(body); });
Σύνοψη
- Το πλαίσιο Node.js μπορεί να χρησιμοποιηθεί για την ανάπτυξη διακομιστών ιστού χρησιμοποιώντας τη λειτουργική μονάδα «http». Η εφαρμογή μπορεί να γίνει για να ακούει σε μια συγκεκριμένη θύρα και να στέλνει μια απάντηση στον πελάτη κάθε φορά που υποβάλλεται αίτημα στην εφαρμογή.
- Η ενότητα «αίτημα» μπορεί να χρησιμοποιηθεί για τη λήψη πληροφοριών από ιστοσελίδες. Οι πληροφορίες θα περιέχουν ολόκληρο το περιεχόμενο της ιστοσελίδας που ζητείται από τον σχετικό ιστότοπο.