Δημιουργήστε μια εφαρμογή Ιστού Hapi.js χρησιμοποιώντας το Node.js στο Ubuntu 16.04

Το Hapi.js είναι ένα πλούσιο, ισχυρό και ισχυρό πλαίσιο Node.js που έχει σχεδιαστεί για τη δημιουργία εφαρμογών ιστού στο οικοσύστημα Node.js. Ο απλός σχεδιασμός του καθιστά εύκολο να ξεκινήσετε. Η Hapi χρησιμοποιεί πολλές από τις πιο πρόσφατες λειτουργίες JavaScript ES6 στον πυρήνα της, όπως τις υποσχέσεις ES6. Για όσους από εσάς έχετε χρησιμοποιήσει το Express στο παρελθόν, το Hapi σάς επιτρέπει να δοκιμάσετε κάτι νέο και να απολαύσετε όλες τις πιο πρόσφατες λειτουργίες JavaScript.

Σε αυτό το σεμινάριο, στόχος μας θα είναι να δημιουργήσουμε μια βασική ιστοσελίδα Hapi.js, η οποία φιλοξενείται από το Vultr VPS μας, στο Ubuntu 16.04 LTS. Για όσους έχουν έναν τομέα για τον ιστότοπό τους, θα χρησιμοποιήσουμε έναν αντίστροφο διακομιστή μεσολάβησης για να συνδέσουμε τον τομέα μας με τον ιστότοπό μας. Τέλος, θα μάθουμε πώς να το διαχειριζόμαστε με έναν διαχειριστή διαδικασίας. Τώρα που το έχουμε ξεμπερδέψει, ας ξεκινήσουμε.

Εγκατάσταση του Node.js

Θα χρειαστεί να εγκαταστήσουμε το Node.js. Για να το κάνετε στο Ubuntu 16.04 LTS, ακολουθήστε αυτές τις οδηγίες.

Προσθήκη του Αποθετηρίου

Θα χρειαστεί να προσθέσουμε το αποθετήριο NodeSource APT, το οποίο περιέχει την πιο πρόσφατη έκδοση LTS του Node.js.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Κάνουμε λήψη ενός σεναρίου που θα χρησιμοποιήσουμε για να προσθέσουμε το αποθετήριο στη λίστα πηγών μας, καθώς και για την εγκατάσταση του Node.js από το αποθετήριο NodeSource.

Εγκατάσταση εργαλείων κατασκευής

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

sudo apt-get install -y build-essential

Αυτό απλά κατεβάζει και εγκαθιστά τα εργαλεία κατασκευής από το αποθετήριο.

Ρύθμιση καταλόγου εφαρμογών

Είναι καλή πρακτική να ορίσουμε έναν φάκελο που θα χρησιμοποιήσουμε για την εφαρμογή μας, ο οποίος θα περιέχει όλα τα δεδομένα της εφαρμογής μας, όπως αρχεία διαμόρφωσης και σενάρια εκκίνησης. Δημιουργήστε ένα φάκελο, ονομάζοντάς τον όπως θέλετε. Για χάρη αυτού του σεμιναρίου, θα υποθέσω ότι το ονομάσατε site.

mkdir site

Αφού δημιουργήσετε τον φάκελο, τώρα μπορούμε να τον αλλάξουμε. Βεβαιωθείτε ότι βρίσκεστε στον κατάλογο που μόλις δημιουργήσατε, ξεκινήστε τον οδηγό πακέτου NPM.

npm init

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

{
  "name": "site",
  "version": "1.0.0",
  "description": "Hapi.js site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "rich",
  "license": "MIT"
}

Μόλις είστε ικανοποιημένοι με το αποτέλεσμα, κάντε κλικ ENTERγια να αποθηκεύσετε το αρχείο.

Εγκατάσταση του Hapi.js

Τώρα που ο κατάλογός σας έχει κατασκευαστεί με επιτυχία, μπορούμε τώρα να προχωρήσουμε στην εγκατάσταση του Hapi.js. Όπως αναφέρθηκε προηγουμένως, θα χρησιμοποιήσουμε το NPM για τη λήψη του Hapi.js, καθώς και των εξαρτήσεών του, για το έργο μας. Στον κατάλογο του έργου, εκτελέστε τα εξής.

npm install hapi.js

Αυτό κατεβάζει το Hapi.js από το NPM και το εγκαθιστά στον κατάλογο του έργου μας. Στην ίδια εκτέλεση, οποιεσδήποτε εξαρτήσεις στις οποίες μπορεί να βασίζεται το Hapi.js πραγματοποιούνται επίσης λήψη για διευκόλυνσή μας.

Ρύθμιση του δείγματος της εφαρμογής μας

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

Στη συνέχεια, θα δημιουργήσουμε το αρχικό μας αρχείο. Ανατρέξτε πίσω στην mainενότητα του package.jsonαρχείου σας , για να προσδιορίσετε ακριβώς πώς να ονομάσετε το αρχείο. Εφόσον χρησιμοποίησα το προεπιλεγμένο σχήμα ονοματοδοσίας, το αρχείο μας θα ονομάζεται index.js.

nano index.js

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

const Hapi=require('hapi');
const server=Hapi.server({
    host:'localhost',
    port: 3000
});

server.route({
    method:'GET',
    path:'/',
    handler:((request,h)) => {
        return 'Sample Hapi.js Application';
    }
});
async function start() {

    try {
        await server.start();
    } catch (err) {
        console.log(err);
        process.exit(1);
    }
    console.log(`Our server is running! ${server.info.uri}`);
};

start();

Αρχικά, εισάγουμε τη μονάδα Hapi. Στη συνέχεια, αρχικοποιούμε τον κατασκευαστή του διακομιστή μας, ο οποίος περιέχει τον κεντρικό υπολογιστή στον οποίο θέλουμε να τρέξουμε τον διακομιστή, καθώς και τη θύρα, που είναι 3000για αυτό το σεμινάριο. Στη συνέχεια, ρυθμίζουμε έναν βασικό δρομολογητή, ο οποίος υποδεικνύει ότι κάθε φορά που κάποιος επισκέπτεται τον ιστότοπο, θα τον υποδεχόμαστε με ένα απλό μήνυμα. Για να τα ολοκληρώσουμε, έχουμε μια λειτουργία async, για την εκκίνηση του διακομιστή μας, ο οποίος θα συνδεθεί στην κονσόλα που εκτελεί ο διακομιστής μας. Όταν τελειώσετε, αποθηκεύστε και κλείστε το αρχείο ( CTRL+ X)

Τώρα που έχει ρυθμιστεί το κύριο αρχείο μας, είμαστε έτοιμοι να ξεκινήσουμε την εφαρμογή μας.

node index.js

Εάν δείτε " Our server is running!" στην κονσόλα, τότε ο διακομιστής ξεκίνησε με επιτυχία.

Εγκαταστήστε το Nginx

Δεδομένου ότι το Nginx είναι διαθέσιμο στα προεπιλεγμένα αποθετήρια του Ubuntu, η εγκατάσταση είναι απλή. Απλώς ενημερώστε τις λίστες πακέτων σας και εγκαταστήστε το.

sudo apt update
sudo apt install nginx -y 

Μετά την ανανέωση των λιστών πακέτων, το Nginx και οι εξαρτήσεις του θα εγκατασταθούν.

Διαμόρφωση Nginx

Για να μπορέσει το Nginx να αντιστρέψει το διακομιστή μεσολάβησης την εφαρμογή μας, θα χρειαστεί να δημιουργήσουμε ένα αρχείο διαμόρφωσης. Αυτό το αρχείο διαμόρφωσης θα περιέχει πληροφορίες σχετικά με την εφαρμογή μας, τις οποίες θα χρησιμοποιήσει το Nginx για τον αντίστροφο διακομιστή μεσολάβησης.

Διαγράψτε την προεπιλεγμένη διαμόρφωση που δημιούργησε το Nginx, καθώς θα την αντικαταστήσουμε με τη δική μας αργότερα.

sudo rm /etc/nginx/sites-enabled/default

Δημιουργήστε ένα νέο αρχείο στο sites-availableφάκελο. Όσο για την ονομασία, μπορούμε να παραμείνουμε απλά site, για απλότητα.

sudo nano /etc/nginx/sites-available/site

Στο αρχείο, επικολλήστε τα παρακάτω και αποθηκεύστε.

server {
    listen 80;
    location / {
          proxy_set_header X-Real-IP 
          $remote_addr;
          proxy_set_header 
          X-Forwarded-For 
          $proxy_add_x_forwarded_for;
          proxy_set_header Host 
          $http_host;
          proxy_set_header 
        X-NginX-Proxy true; proxy_pass 
       http://127.0.0.1:3000/;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade 
     $http_upgrade;
    proxy_set_header Connection 
    "upgrade";
    proxy_redirect off;
    proxy_set_header 
   X-Forwarded-Proto $scheme;
    }
}

Σε αυτό το αρχείο, λέμε στο Nginx να ακούει στη θύρα 80. Επίσης, ορίζουμε τη διέλευση του διακομιστή μεσολάβησης στη localhostδιεύθυνση και τη θύρα 3000, η οποία είναι η ίδια θύρα με την εφαρμογή μας Hapi.

Τώρα μπορείτε να επιστρέψετε στον κατάλογο της εφαρμογής σας και να ξεκινήσετε τον ιστότοπο. Μόλις ξεκινήσει ο ιστότοπος, απλώς μεταβείτε στο http://yourdomain.comή http://yourip, και θα δείτε το κείμενο " Hello World".

Εγκαταστήστε το PM2

Το PM2 μπορεί να βρεθεί στο αποθετήριο NPM και μπορείτε να το εγκαταστήσετε καθολικά για να είναι προσβάσιμο από οπουδήποτε, όπως έτσι.

sudo npm install pm2 -g

Η -gσημαία στο τέλος υποδεικνύει ότι θέλουμε να εγκαταστήσουμε τη λειτουργική μονάδα στον φάκελο καθολικών λειτουργικών μονάδων, που θα μας επιτρέψει να τη χρησιμοποιήσουμε εκτός του καταλόγου του έργου μας. Αυτό χρησιμοποιείται προκειμένου το έργο μας να συμπεριφέρεται σαν μια κανονική εφαρμογή συστήματος.

Ξεκινώντας την εφαρμογή μας με PM2

Αφού εγκαταστήσετε το PM2, μεταβείτε στον κατάλογο του έργου σας. Η σύνταξη για την έναρξη της εφαρμογής μας θα είναι ελαφρώς διαφορετική τώρα. Έτσι θα το κάνουμε με τα PM2.

pm2 start index.js --name site

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

pm2 logs site

Μπορείτε ακόμη να καθορίσετε πόσες γραμμές αρχείων καταγραφής θέλετε να δείτε, με το --linesόρισμα.

συμπέρασμα

Ρυθμίσατε με επιτυχία έναν διακομιστή ιστού Hapi.js, τον αντιστρέψατε με μεσολάβηση με το Nginx και μάθετε πώς να τον διαχειρίζεστε καλύτερα με το PM2. Με αυτή τη γνώση, μπορείτε να επεκτείνετε περαιτέρω αυτό το σεμινάριο και να δημιουργήσετε μια πολύ προηγμένη εφαρμογή Hapi.js. Για να μάθετε περισσότερα σχετικά με τις δυνατότητες του Hapi, επισκεφτείτε την επίσημη τεκμηρίωσή τους . Αν θέλετε να μάθετε περισσότερα για τις δυνατότητες του PM2, ανατρέξτε στον οδηγό γρήγορης εκκίνησης .

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

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

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

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

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

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

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα