Hoe maak je een Node.js RESTful API met Express.js op Ubuntu 16.04 LTS

In deze zelfstudie leert u hoe u een volledige RESTful API instelt, die HTTP-verzoeken met Node.js en Express zal uitvoeren terwijl deze omgekeerd wordt geprojecteerd met NGINX, op Ubuntu 16.04 LTS. We zullen een applicatie gebruiken genaamd Postman, een zeer bekende API-ontwikkelingstool, om onze API te testen en ervoor te zorgen dat deze volledig functioneel is en naar behoren werkt. Node.js is een snel, platformonafhankelijk JavaScript-framework gebaseerd op de V8-engine van Chrome. Het wordt gebruikt in zowel desktop- als servertoepassingen en staat bekend om zijn single-threaded event loop handling. We zullen Node.js gebruiken als backend voor onze RESTful API, gebundeld met Express.js, ons webapplicatiekader gebouwd voor Node.js. Express.js wordt uitgebracht als gratis en open software. Express is server-side, geschreven in JavaScript en is ontworpen voor het bouwen van API's, wat het perfect maakt voor ons project. Aan de andere kant is Postman een zeer krachtige HTTP-client, met API-ontwikkeling in gedachten. Het bevat alle tools die u mogelijk nodig heeft voor API-ontwikkeling.

Postman installeren

Eerst wilt u naar de website van Postman gaan en Postman downloaden en installeren voor uw hoofd-pc (niet uw server). Alle installatie-instructies staan ​​op hun website.

Node.js installeren

Om te beginnen moeten we eerst Node.js installeren, zodat we kunnen beginnen met het ontwikkelen van onze API. We zullen Node.js downloaden en installeren vanaf de officiële website.

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

Daarnaast zul je ook de nodige build-tools willen pakken, wat handig zal zijn bij het compileren van modules.

sudo apt-get install build-essential

Voor deze tutorial gebruiken we de LTS-versie van Node.js, dat is versie 8.9.3.

Ons Node.js-project initialiseren

We zullen een nieuw Node.js-project moeten initialiseren, dat een applicatie zal bevatten. Maak daarvoor een nieuwe map.

 mkdir expressapi 

Ga naar de nieuwe directory. Eenmaal binnen voert u npm initalle vereiste prompts uit en voert u deze uit. Noteer het "toegangspunt" van uw aanvraag: u maakt dit bestand later aan. Als je klaar bent, zie je een package.jsonbestand in je huidige directory. Het fungeert als een beschrijving van ons project en somt alle afhankelijkheden op die nodig zijn om te functioneren.

Express.js instellen

Nu zullen we Express.js en zijn afhankelijkheden configureren.

npm install express

Het installatieproces begint. Het duurt een paar minuten voordat alles is gedownload.

Ons hoofdbestand starten

Vervolgens maken we ons belangrijkste startbestand voor onze API. Hier gebruikt u het "toegangspunt" dat u in het package.jsonbestand zag . Omwille van deze tutorial zal ik de standaard naamgeving regeling, index.js.

touch index.js

Open het vervolgens in de nano-teksteditor.

nano index.js

In ons hoofdbestand willen we eerst al onze hoofdpakketten bellen en onze routes registreren.

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);

Wat we hier eigenlijk doen, is onze app initialiseren en een basisrouter voor onze API instellen. Merk op dat we de poort van onze applicatie instellen op 8080. We hebben dit nummer nodig voor het configureren van onze RESTful API. Nu zijn we klaar om door te gaan en onze API te testen.

Onze API testen met Postman

Voer in de projectdirectory het volgende uit.

node <filename>.js

Hiermee wordt de API gestart, waar <filename>is het startbestand dat u in het package.jsonbestand hebt opgegeven . Open vervolgens Postman op uw pc / Mac en klik op de Newknop " " in de rechterbovenhoek en klik vervolgens op " Request". Daar zou u een balk moeten zien met de tekst " GET" ernaast. Hier zullen we onze verzoek-URL invoeren. Voer eenvoudig het volgende in het verzoek URL-gedeelte in en klik op " Send".

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

U zult " 'API is online'" zien.

API-routes

Om routes af te handelen, gebruiken we de Express-router. Als u niet weet wat een router is, is dit in wezen hoe applicatie-eindpunten reageren op clientverzoeken. Dit zijn de routes die we als voorbeeld gaan opzetten:

  • /api/numbers - Toont alle nummers van 1-10.

  • /api/letters - Toont alle letters van AZ.

Nu zullen we onze eerste route-middlewarestructuur opzetten, zoals zo.

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 dit voorbeeld hebben we een situatie opgezet waarin een gebruiker de som van een getal + 1 kan opvragen door de woordvorm ervan op te geven met behulp van de GET-methode. We gebruiken de router.route()functie om aan te geven welk nummer we als resultaat terug willen sturen. Parameters worden benoemd met een " :" ervoor. We hebben toegang tot deze parameter (s) via req.params.

Hier is een voorbeeld met letters.

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

We gebruiken dezelfde methode als hierboven, maar we sturen de brief terug met een hoofdletter.

Inleiding tot NGINX

NGINX is een bekende open-source software die wordt gebruikt voor webserving, reverse proxies, streaming en meer. We zullen NGINX gebruiken om onze API om te zetten in proxy, zodat we deze op poort kunnen uitvoeren 80, omdat Node.js geen verbindingen op poorten kleiner dan 1024 zonder roottoegang toestaat. Dit kan handig zijn bij het koppelen van uw domein aan uw server.

NGINX instellen

Om te beginnen met het installeren van NGINX, moet u het volgende in uw terminal uitvoeren en wachten tot de installatie is voltooid.

sudo apt-get install nginx

Vervolgens willen we ons sitebestand maken dat NGINX zal gebruiken om onze app te proxy-omkeren.

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

Vul het bestand in met het volgende en vervolgens CTRL+ Oom het op te slaan.

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;
       }
}

Met dezelfde poort waarop we onze applicatie eerder uitvoerden, vertellen we Nginx om alle verzoeken van ons IP-adres op de poort 80om te leiden naar onze API die op de poort draait 8080.

Schakel vervolgens de reverse proxy in door ons nieuw gemaakte bestand te symlinken naar de sites-availablemap:

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

Dit zorgt ervoor dat NGINX onze API zal proxy omkeren.

Loop eerst met NGINX

Zodra we onze NGINX-configuratie hebben voltooid, starten we NGINX en vervolgens onze API. Start eerst NGINX opnieuw op.

sudo systemctl restart nginx

Ga vervolgens terug naar uw API-directory en start deze.

node <filename>.js

De applicatie wordt uitgevoerd op poort 80. Voer gewoon de test van bovenaf uit met Postman, om er zeker van te zijn dat alles goed werkt.

Onze API draaiend houden

In een productieomgeving wil je er zeker van zijn dat je een procesmanager hebt voor je Node-applicaties, zodat ze voor altijd op de achtergrond blijven draaien. In deze tutorial gebruiken we een procesmanager genaamd PM2 (Process Manager 2), een procesmanager voor Node.js-applicaties die ze voor altijd in leven zal houden met minimale downtime. PM2 wordt geleverd met veel handige beheertools, zoals stoppen, herladen, pauzeren en meer. Typ het volgende om PM2 te installeren en wacht tot het is geïnstalleerd.

sudo npm install pm2 -g

Nadat het is geïnstalleerd, hoeft u alleen maar te zorgen dat u zich in de projectdirectory bevindt, het volgende te typen en de toepassing wordt gestart.

pm2 start <filename>.js

Onze applicatie beheren met PM2

Zoals eerder vermeld, heeft PM2 enkele handige tools die u kunt gebruiken om uw applicatie beter te beheren.

  • pm2 stop- Zoals de naam al doet vermoeden, kunt u hiermee de momenteel actieve toepassing stoppen en het proces beëindigen. Als uw toepassing een onverwacht resultaat oplevert, is het handig om te stoppen.

  • pm2 list- Met de lijstfunctie kunt u alle momenteel actieve applicaties zien via PM2, toegewezen met hun namen. Als u snel de uptime van uw applicatie moet controleren, moet u deze tool gebruiken.

  • pm2 restart- Als uw applicatie om de een of andere reden vastloopt en u wilt hem opnieuw laden, doet pm2 herstart precies dat. Het zal het aanvraagproces beëindigen en opnieuw starten onder een ander proces.

  • pm2 monit- Met de ingebouwde monitor-tool van PM2 kunt u een grafiek bekijken van de specifieke details van uw toepassing, zoals CPU / RAM-gebruik, in een gebruiksvriendelijke ncurses-achtige grafiek. Dit is handig als u een visuele afbeelding wilt van de belasting van uw applicatie.

Laatste opmerkingen

We hebben nu onze taak volbracht om een ​​RESTful API te maken, gebruik makend van Node.js, Express, en deze omgekeerd te proxygen met NGINX. Voel je vrij om deze tutorial uit te breiden. U kunt veel geweldige dingen doen met uw nieuwe API, zoals het toevoegen van verificatiemethoden, een database, betere route- en foutafhandeling en nog veel, veel meer. Als u een domein heeft, met een "A" -record al ingesteld op uw IP-adres, dan heeft u vanuit uw domein toegang tot uw API. Als je meer wilt weten over Express.js, bezoek dan hun website op http://expressjs.com . Bezoek http://nginx.com voor meer informatie over NGINX en reverse proxying . Bezoek hun pagina op http://pm2.keymetrics.io voor meer informatie over PM2 .



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.