Node.js RESTful API létrehozása Express.js használatával Ubuntu 16.04 LTS-en

Ebből az oktatóanyagból megtudhatja, hogyan állíthat be egy teljes RESTful API-t, amely a HTTP-kéréseket Node.js és Express használatával szolgálja ki, miközben fordított proxyt NGINX-szel Ubuntu 16.04 LTS-en. A Postman nevű alkalmazást fogjuk használni, egy nagyon jól ismert API-fejlesztő eszköz, amellyel tesztelhetjük API-nkat, és megbizonyosodhatunk arról, hogy teljesen működőképes és megfelelően működik. A Node.js egy gyors, többplatformos JavaScript-keretrendszer, amely a Chrome V8-as motorján alapul. Asztali és szerveralkalmazásokban egyaránt használják, és híres egyszálú eseményhurok kezeléséről. A Node.js-t fogjuk használni a RESTful API háttérprogramjaként, amely a Node.js-hez épített webalkalmazás-keretrendszerünk, az Express.js-szel van csomagolva. Az Express.js ingyenes és nyílt szoftverként jelenik meg. Az Express szerveroldali, JavaScriptben íródott, és API-k építésére készült, így tökéletes a projektünkhöz. Másrészt a Postman egy nagyon erős HTTP-kliens, az API-fejlesztést szem előtt tartva. Az API-fejlesztéshez szükséges összes eszközt tartalmazza.

Postman telepítése

Először is fel kell lépnie a Postman webhelyére , és letöltenie és telepítenie kell a Postman-t a fő számítógépére (nem a szerverére). Minden telepítési utasítás megtalálható a weboldalukon.

A Node.js telepítése

A kezdéshez először telepítenünk kell a Node.js-t, hogy elkezdhessük az API fejlesztését. A Node.js fájl letöltése és telepítése a hivatalos webhelyről történik.

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

Ezen kívül érdemes megragadni a szükséges összeállítási eszközöket is, amelyek hasznosak lesznek a modulok összeállításában.

sudo apt-get install build-essential

Ebben az oktatóanyagban a Node.js LTS verzióját fogjuk használni, amely a 8.9.3 verzió.

Node.js projektünk inicializálása

Inicializálnunk kell egy új Node.js projektet, amely egy alkalmazást fog tartalmazni. Ehhez hozzon létre egy új könyvtárat.

 mkdir expressapi 

Váltás az új könyvtárra. Miután belépett, futtassa, npm inités töltse ki az összes szükséges utasítást. Jegyezze fel alkalmazása "belépési pontját": ezt a fájlt később hozza létre. Ha végzett, látni fog egy package.jsonfájlt az aktuális könyvtárában. Ez a projekt leírásaként működik, és felsorolja a működéshez szükséges összes függőséget.

Az Express.js beállítása

Most konfiguráljuk az Express.js-t és annak függőségeit.

npm install express

Megkezdődik a telepítési folyamat. Eltart néhány percig, amíg minden befejeződik a letöltéssel.

A fő fájl elindítása

Ezután létrehozzuk az API fő kezdőfájlját. Itt fogja használni a package.jsonfájlban látott "belépési pontot" . Az oktatóanyag kedvéért az alapértelmezett elnevezési sémát fogom használni, index.js.

touch index.js

Ezután nyissa meg a nano szövegszerkesztőben.

nano index.js

A fő fájlunkban először meg akarjuk hívni az összes fő csomagunkat, és regisztrálni szeretnénk az útvonalainkat.

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

Alapvetően az alkalmazásunk inicializálása és egy alapvető útválasztó beállítása az API-nkhoz. Vegye figyelembe, hogy az alkalmazásunk portját a következőre állítottuk 8080. Erre a számra a RESTful API konfigurálásakor lesz szükségünk. Most készen állunk az API tesztelésére.

Az API tesztelése a Postman segítségével

A projektkönyvtárban futtassa a következőt.

node <filename>.js

Ezzel elindítja az API-t, ahol <filename>a fájlban megadott package.jsonkezdőfájl található. Ezután nyissa meg a Postmant PC/Mac számítógépén, kattintson a Newjobb felső sarokban található " " gombra, majd kattintson a " Request" gombra . Amikor ott van, egy sávot kell látnia GETmellette a következő felirattal: " ". Ide írjuk be kérésünk URL-jét. Egyszerűen írja be a következőket a kérelem URL szakaszába, majd kattintson a " Send" gombra .

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

A következőt fogja látni: " 'API is online'".

API útvonalak

Az útvonalak kezeléséhez az Express útválasztót fogjuk használni. Ha nem tudja, mi az az útválasztó, akkor ez lényegében az, hogy az alkalmazás végpontjai hogyan reagálnak az ügyfelek kérésére. Íme az útvonalak, amelyeket példaként beállítunk:

  • /api/numbers - Az összes számot megjeleníti 1-től 10-ig.

  • /api/letters - Megjeleníti az AZ összes betűjét.

Most beállítjuk az első útvonal köztes szoftver struktúránkat, hasonlóképpen.

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

Ebben a példában egy olyan helyzetet állítottunk fel, amikor a felhasználó a GET metódussal lekérheti egy szám + 1 összegét a szóalakot megadva. A router.route()függvény segítségével rámutatunk arra a számra, amelyet ennek eredményeként vissza akarunk küldeni. A paraméterek elnevezése :előtt " " van. Ezeket a paramétereket a következőn keresztül érjük el req.params.

Íme egy példa betűkkel.

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

A fenti módszert alkalmazzuk, de a levelet nagybetűvel küldjük vissza.

Bevezetés az NGINX-be

Az NGINX egy jól ismert nyílt forráskódú szoftver, amelyet webszolgáltatásra, fordított proxykra, streamelésre és egyebekre használnak. Az NGINX-et fogjuk használni az API-nk proxyjának megfordításához, hogy lehetővé tegyük a porton való futtatását 80, mivel a Node.js nem engedélyezi a kapcsolatokat 1024-nél kisebb portokon root hozzáférés nélkül. Ez hasznos lehet a domain és a szerver összekapcsolásakor.

Az NGINX beállítása

Az NGINX telepítésének megkezdéséhez futtassa a következőt a terminálon, és várja meg, amíg a telepítés befejeződik.

sudo apt-get install nginx

Ezután létrehozzuk a webhelyfájlunkat, amelyet az NGINX az alkalmazásunk proxyjának visszafordításához fog használni.

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

Töltse ki a fájlt a következővel, majd a mentéséhez a CTRL+ jellel O.

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

Ugyanazon a porton, amelyen az alkalmazásunkat korábban 80futtattuk , azt mondjuk az Nginxnek, hogy irányítsa át az összes kérést a porton lévő IP-címünkről a porton futó API-ra 8080.

Ezután engedélyezze a fordított proxyt úgy, hogy az újonnan létrehozott fájlunkat szimbolizálja a sites-availablemappával:

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

Ez biztosítja, hogy az NGINX megfordítsa az API-nkat.

Első futtatás NGINX-szel

Miután befejeztük az NGINX konfigurációját, elindítjuk az NGINX-et, majd elindítjuk az API-t. Először indítsa újra az NGINX-et.

sudo systemctl restart nginx

Ezután térjen vissza az API-könyvtárba, és indítsa el.

node <filename>.js

Az alkalmazás a porton fog futni 80. Egyszerűen futtassa le a tesztet felülről a Postman segítségével, hogy megbizonyosodjon arról, hogy minden megfelelően működik.

Az API működésének fenntartása

Éles környezetben győződjön meg arról, hogy rendelkezik egy folyamatkezelővel a csomópont-alkalmazásokhoz, hogy azok örökké a háttérben futhassanak. Ebben az oktatóanyagban a PM2 (Process Manager 2) nevű folyamatkezelőt fogjuk használni, amely a Node.js alkalmazások folyamatkezelője, amely minimális állásidővel örökre életben tartja azokat. A PM2 számos hasznos felügyeleti eszközzel érkezik, mint például a leállítás, újratöltés, szüneteltetés stb. A PM2 telepítéséhez írja be a következőt, és várja meg a telepítést.

sudo npm install pm2 -g

A telepítés után nem kell mást tennie, mint megbizonyosodni arról, hogy a projektkönyvtárban van, írja be a következőket, és az alkalmazás elindul.

pm2 start <filename>.js

Alkalmazásunk kezelése PM2-vel

Amint azt korábban említettük, a PM2 rendelkezik néhány hasznos eszközzel, amelyek segítségével jobban kezelheti az alkalmazást.

  • pm2 stop- Ahogy a neve is sugallja, ez lehetővé teszi az éppen futó alkalmazás leállítását és folyamatának leállítását. Ha az alkalmazás váratlan eredményt hoz, akkor hasznos lesz a leállítása.

  • pm2 list- A lista funkció lehetővé teszi az összes jelenleg futó alkalmazás megtekintését a PM2-n keresztül, a nevükkel leképezve. Ha gyorsan szeretné ellenőrizni az alkalmazás üzemidejét, használja ezt az eszközt.

  • pm2 restart- Ha az alkalmazás valamilyen okból lefagy, és újra szeretné tölteni, a pm2 restart pontosan ezt teszi. Leállítja a jelentkezési folyamatot, és újrakezdi, egy másik folyamat alatt.

  • pm2 monit- A PM2 beépített monitoreszköze lehetővé teszi, hogy egy felhasználóbarát ncurses-stílusú grafikonon megtekintse az alkalmazás konkrét részleteit, például a CPU/RAM-használatot. Ez akkor hasznos, ha vizuális képet szeretne az alkalmazás betöltődéséről.

Záró megjegyzések

Mostanra befejeztük azt a feladatunkat, hogy létrehozunk egy RESTful API-t Node.js, Express használatával, és fordított proxyt az NGINX-szel. Nyugodtan bővítse ki ezt az oktatóanyagot. Az új API-val sok nagyszerű dolgot tehet, például hitelesítési módszereket, adatbázist, jobb útvonal- és hibakezelést és még sok minden mást. Ha van olyan domainje, amelyben már be van állítva egy „A” rekord az Ön IP-címéhez, akkor a domainjéből hozzáférhet API-jához. Ha többet szeretne megtudni az Express.js-ről, látogassa meg webhelyüket a http://expressjs.com címen . Ha többet szeretne megtudni az NGINX-ről és a fordított proxyról, látogasson el a http://nginx.com webhelyre . Ha többet szeretne megtudni a PM2-ről, látogassa meg oldalukat a http://pm2.keymetrics.io címen .

Hagyj kommentárt

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <>Windows ISO<> előállításának lépéseit az NTLite segítségével.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.