So erstellen Sie eine Node.js RESTful-API mit Express.js unter Ubuntu 16.04 LTS

In diesem Tutorial erfahren Sie, wie Sie unter Ubuntu 16.04 LTS eine vollständige RESTful-API einrichten, die HTTP-Anforderungen mit Node.js und Express beim Reverse-Proxy mit NGINX bedient. Wir werden eine Anwendung namens Postman verwenden, ein sehr bekanntes API-Entwicklungstool, um unsere API zu testen und sicherzustellen, dass sie voll funktionsfähig ist und ordnungsgemäß funktioniert. Node.js ist ein schnelles, plattformübergreifendes JavaScript-Framework, das auf der V8-Engine von Chrome basiert. Es wird sowohl in Desktop- als auch in Serveranwendungen verwendet und ist bekannt für seine Single-Threaded-Ereignisschleifenbehandlung. Wir werden Node.js als Backend für unsere RESTful-API verwenden, die mit Express.js, unserem für Node.js erstellten Webanwendungsframework, gebündelt ist. Express.js wird als freie und offene Software veröffentlicht. Express ist serverseitig, in JavaScript geschrieben und wurde zum Erstellen von APIs entwickelt, was es perfekt für unser Projekt macht. Auf der anderen Seite ist Postman ein sehr leistungsfähiger HTTP-Client, der die API-Entwicklung im Auge hat. Es enthält alle Tools, die Sie möglicherweise für die API-Entwicklung benötigen.

Postbote installieren

Zunächst möchten Sie die Website von Postman aufrufen und Postman für Ihren Haupt-PC herunterladen und installieren (nicht für Ihren Server). Alle Installationsanweisungen finden Sie auf ihrer Website.

Node.js installieren

Zunächst müssen wir Node.js installieren, damit wir mit der Entwicklung unserer API beginnen können. Wir werden Node.js von der offiziellen Website herunterladen und installieren.

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

Darüber hinaus möchten Sie auch die erforderlichen Build-Tools herunterladen, die beim Kompilieren von Modulen hilfreich sind.

sudo apt-get install build-essential

Für dieses Tutorial verwenden wir die LTS-Version von Node.js, Version 8.9.3.

Initialisierung unseres Node.js-Projekts

Wir müssen ein neues Node.js-Projekt initialisieren, das eine Anwendung enthält. Erstellen Sie dazu ein neues Verzeichnis.

 mkdir expressapi 

Wechseln Sie in das neue Verzeichnis. Sobald Sie drinnen sind, führen Sie npm initalle erforderlichen Eingabeaufforderungen aus und führen Sie sie aus. Beachten Sie den "Einstiegspunkt" Ihrer Anwendung: Sie werden diese Datei später erstellen. Sobald Sie fertig sind, sehen Sie eine package.jsonDatei in Ihrem aktuellen Verzeichnis. Es dient als Beschreibung unseres Projekts und listet alle Abhängigkeiten auf, die für das Funktionieren erforderlich sind.

Einrichten von Express.js

Jetzt werden wir Express.js und seine Abhängigkeiten konfigurieren.

npm install express

Der Installationsvorgang beginnt. Es dauert einige Minuten, bis der Download abgeschlossen ist.

Starten unserer Hauptdatei

Als nächstes erstellen wir unsere Hauptstartdatei für unsere API. Hier verwenden Sie den "Einstiegspunkt", den Sie in der package.jsonDatei gesehen haben. Für dieses Tutorial werde ich das Standard-Namensschema verwenden index.js.

touch index.js

Öffnen Sie es dann im Nano-Texteditor.

nano index.js

In unserer Hauptdatei möchten wir zuerst alle unsere Hauptpakete aufrufen und unsere Routen registrieren.

var express = require('express');        
var app = express();                 
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;  
const router = express.Router();
router.get('/', function(req, res) {
    res.json({ message: 'API is Online!' });   
});

app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);

Grundsätzlich initialisieren wir hier unsere App und richten einen Basis-Router für unsere API ein. Beachten Sie, dass wir den Port unserer Anwendung auf setzen 8080. Wir benötigen diese Nummer, wenn wir unsere RESTful-API konfigurieren. Jetzt können wir unsere API testen.

Testen unserer API mit Postman

Führen Sie im Projektverzeichnis Folgendes aus.

node <filename>.js

Dadurch wird die API gestartet. Dabei <filename>handelt es sich um die Startdatei, die Sie in der package.jsonDatei angegeben haben. Öffnen Sie dann Postman auf Ihrem PC / Mac und klicken Sie auf die NewSchaltfläche " " in der oberen rechten Ecke. Klicken Sie dann auf " Request". Dort sollte eine Leiste mit der Aufschrift " GET" angezeigt werden. Hier geben wir unsere Anfrage-URL ein. Geben Sie einfach Folgendes in den Abschnitt "Anforderungs-URL" ein und klicken Sie auf " Send".

`http://your-server-ip:3000/api` 

Sie werden " 'API is online'" sehen.

API-Routen

Für die Bearbeitung von Routen verwenden wir den Express-Router. Wenn Sie nicht wissen, was ein Router ist, reagieren Anwendungsendpunkte im Wesentlichen auf Clientanforderungen. Hier sind die Routen, die wir als Beispiel einrichten werden:

  • /api/numbers - Zeigt alle Zahlen von 1-10 an.

  • /api/letters - Zeigt alle Buchstaben von AZ an.

Jetzt werden wir so unsere Middleware-Struktur für die erste Route einrichten.

router.use(function(req, res, next) {
   console.log('We've got something.');
   next() //calls next middleware in the application.
});

router.route('/numbers/:number').get((req, res) => {
     res.json({result: req.params.number + 1})
});

In diesem Beispiel haben wir eine Situation eingerichtet, in der ein Benutzer die Summe einer Zahl + 1 anfordern kann, indem er die Wortform mit der GET-Methode angibt. Wir verwenden die router.route()Funktion, um zu zeigen, welche Nummer wir als Ergebnis zurücksenden möchten. Parameter werden mit einem " :" vor ihnen benannt. Wir greifen über auf diese Parameter zu req.params.

Hier ist ein Beispiel mit Buchstaben.

   router.route('/letters/:letter').get((req, res) => {
     res.json({result: req.params.letter.toUpperCase()})
});

Wir verwenden die gleiche Methode wie oben, senden den Brief jedoch in Großbuchstaben zurück.

Einführung in NGINX

NGINX ist eine bekannte Open-Source-Software, die für Web-Serving, Reverse-Proxys, Streaming und mehr verwendet wird. Wir werden NGINX verwenden, um den Proxy unserer API umzukehren, damit wir sie auf dem Port ausführen können 80, da Node.js keine Verbindungen auf Ports unter 1024 ohne Root-Zugriff zulässt. Dies kann nützlich sein, wenn Sie Ihre Domain mit Ihrem Server verknüpfen.

NGINX einrichten

Um mit der Installation von NGINX zu beginnen, müssen Sie Folgendes in Ihrem Terminal ausführen und warten, bis die Installation abgeschlossen ist.

sudo apt-get install nginx

Als Nächstes möchten wir unsere Site-Datei erstellen, die NGINX verwendet, um den Proxy unserer App umzukehren.

sudo nano /etc/nginx/sites-available-api.js

Füllen Sie die Datei wie folgt aus und dann CTRL+ O, um sie zu speichern.

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:8080/;
                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;
       }
}

Mit demselben Port, auf dem wir unsere Anwendung zuvor ausgeführt haben, weisen wir Nginx an, alle Anforderungen von unserer IP-Adresse am Port 80an unsere API am Port umzuleiten 8080.

Aktivieren Sie als Nächstes den Reverse-Proxy, indem Sie unsere neu erstellte Datei mit dem sites-availableOrdner verknüpfen :

sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available

Dadurch wird sichergestellt, dass NGINX den Proxy unserer API umkehrt.

Zuerst mit NGINX ausführen

Sobald wir unsere NGINX-Konfiguration abgeschlossen haben, starten wir NGINX und starten dann unsere API. Starten Sie zuerst NGINX neu.

sudo systemctl restart nginx

Wechseln Sie dann zurück in Ihr API-Verzeichnis und starten Sie es.

node <filename>.js

Die Anwendung wird am Port ausgeführt 80. Führen Sie den Test einfach von oben mit Postman durch, um sicherzustellen, dass alles ordnungsgemäß funktioniert.

Unsere API am Laufen halten

In einer Produktionsumgebung möchten Sie sicherstellen, dass Sie einen Prozessmanager für Ihre Knotenanwendungen haben, um sicherzustellen, dass diese für immer im Hintergrund ausgeführt werden. In diesem Tutorial verwenden wir einen Prozessmanager namens PM2 (Process Manager 2), einen Prozessmanager für Node.js-Anwendungen, der sie mit minimalen Ausfallzeiten für immer am Leben hält. PM2 enthält viele nützliche Verwaltungstools wie Stoppen, Neuladen, Anhalten und mehr. Geben Sie zur Installation von PM2 Folgendes ein und warten Sie, bis es installiert ist.

sudo npm install pm2 -g

Nach der Installation müssen Sie lediglich sicherstellen, dass Sie sich im Projektverzeichnis befinden. Geben Sie Folgendes ein, und die Anwendung wird gestartet.

pm2 start <filename>.js

Verwalten unserer Anwendung mit PM2

Wie bereits erwähnt, verfügt PM2 über einige nützliche Tools, mit denen Sie Ihre Anwendung besser verwalten können.

  • pm2 stop- Wie der Name schon sagt, können Sie auf diese Weise die aktuell ausgeführte Anwendung stoppen und ihren Prozess beenden. Wenn Ihre Anwendung ein unerwartetes Ergebnis liefert, ist es praktisch, sie zu stoppen.

  • pm2 list- Mit der Listenfunktion können Sie alle aktuell ausgeführten Anwendungen über PM2 anzeigen, die ihren Namen zugeordnet sind. Wenn Sie die Verfügbarkeit Ihrer Anwendung schnell überprüfen müssen, sollten Sie dieses Tool verwenden.

  • pm2 restart- Wenn Ihre Anwendung aus irgendeinem Grund einfriert und Sie sie neu laden möchten, führt pm2 restart genau das aus. Der Bewerbungsprozess wird abgebrochen und unter einem anderen Prozess erneut gestartet.

  • pm2 monit- Mit dem in PM2 integrierten Monitor-Tool können Sie ein Diagramm der spezifischen Details Ihrer Anwendung, z. B. der CPU- / RAM-Auslastung, in einem benutzerfreundlichen Diagramm im ncurses-Stil anzeigen. Dies ist nützlich, wenn Sie ein visuelles Bild der Auslastung Ihrer Anwendung wünschen.

Schlussbemerkungen

Wir haben jetzt unsere Aufgabe abgeschlossen, eine RESTful-API mit Node.js, Express und Reverse-Proxy mit NGINX zu erstellen. Fühlen Sie sich frei, dieses Tutorial zu erweitern. Mit Ihrer neuen API können Sie viele großartige Dinge tun, z. B. Authentifizierungsmethoden hinzufügen, eine Datenbank, eine bessere Routen- und Fehlerbehandlung und vieles mehr. Wenn Sie eine Domain haben, für die bereits ein "A" -Datensatz für Ihre IP-Adresse eingerichtet ist, können Sie von Ihrer Domain aus auf Ihre API zugreifen. Wenn Sie mehr über Express.js erfahren möchten, besuchen Sie die Website unter http://expressjs.com . Weitere Informationen zu NGINX und Reverse Proxy finden Sie unter http://nginx.com . Um mehr über PM2 zu erfahren, besuchen Sie die Seite unter http://pm2.keymetrics.io .



Leave a Comment

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.