Kā izveidot Node.js RESTful API, izmantojot Express.js operētājsistēmā Ubuntu 16.04 LTS

Šajā apmācībā jūs uzzināsit, kā iestatīt pilnīgu RESTful API, kas apkalpos HTTP pieprasījumus, izmantojot Node.js un Express, vienlaikus veicot apgriezto starpniekserveri, izmantojot NGINX, Ubuntu 16.04 LTS. Mēs izmantosim lietojumprogrammu Pastnieks, ļoti labi zināms API izstrādes rīks, lai pārbaudītu mūsu API un pārliecinātos, ka tā ir pilnībā funkcionāla un darbojas pareizi. Node.js ir ātrs, vairāku platformu JavaScript ietvars, kura pamatā ir Chrome V8 dzinējs. To izmanto gan darbvirsmas, gan serveru lietojumprogrammās, un tas ir slavens ar viena pavediena notikumu cilpas apstrādi. Mēs izmantosim Node.js kā aizmugursistēmu mūsu RESTful API, kas ir komplektā ar Express.js — mūsu tīmekļa lietojumprogrammu ietvaru, kas izveidots Node.js. Express.js tiek izlaists kā bezmaksas un atvērta programmatūra. Express ir servera puses, rakstīts JavaScript, un ir paredzēts API veidošanai, tāpēc tas ir lieliski piemērots mūsu projektam. No otras puses, Postman ir ļoti jaudīgs HTTP klients, ņemot vērā API attīstību. Tajā ir visi rīki, kurus jūs varētu vēlēties API izstrādei.

Pastnieka instalēšana

Pirmkārt, jūs vēlaties doties uz Postman vietni un lejupielādēt un instalēt Postman galvenajam datoram (nevis jūsu serverim). Visas instalēšanas instrukcijas būs viņu vietnē.

Node.js instalēšana

Lai sāktu, mums vispirms būs jāinstalē Node.js, lai mēs varētu sākt izstrādāt mūsu API. Mēs lejupielādēsim un instalēsim Node.js no oficiālās vietnes.

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

Turklāt vēlēsities paķert arī nepieciešamos veidošanas rīkus, kas noderēs moduļu apkopošanā.

sudo apt-get install build-essential

Šajā apmācībā mēs izmantosim Node.js LTS versiju, kas ir versija 8.9.3.

Notiek projekta Node.js inicializācija

Mums būs jāinicializē jauns Node.js projekts, kurā būs lietojumprogramma. Lai to izdarītu, izveidojiet jaunu direktoriju.

 mkdir expressapi 

Mainiet uz jauno direktoriju. Kad esat iekšā, palaidiet npm initun izpildiet visas nepieciešamās uzvednes. Ņemiet vērā savas lietojumprogrammas "ieejas punktu": šo failu izveidosit vēlāk. Kad esat pabeidzis, jūs redzēsiet package.jsonfailu pašreizējā direktorijā. Tas darbojas kā mūsu projekta apraksts, un tajā ir uzskaitītas visas funkcionēšanai nepieciešamās atkarības.

Express.js iestatīšana

Tagad mēs konfigurēsim Express.js un tā atkarības.

npm install express

Sāksies instalēšanas process. Paies dažas minūtes, līdz viss tiks lejupielādēts.

Sākam mūsu galveno failu

Tālāk mēs izveidosim mūsu API galveno sākuma failu. Šeit jūs izmantosit package.jsonfailā redzēto "ieejas punktu" . Šīs apmācības nolūkos es izmantošu noklusējuma nosaukumu shēmu index.js.

touch index.js

Pēc tam atveriet to nano teksta redaktorā.

nano index.js

Mūsu galvenajā failā mēs vispirms vēlamies izsaukt visas mūsu galvenās pakotnes un reģistrēt savus maršrutus.

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

Būtībā tas, ko mēs šeit darām, ir mūsu lietotnes inicializācija un pamata maršrutētāja iestatīšana mūsu API. Ņemiet vērā, ka mēs iestatījām mūsu lietojumprogrammas portu uz 8080. Šis numurs mums būs nepieciešams, kad konfigurēsim mūsu RESTful API. Tagad mēs esam gatavi iet uz priekšu un pārbaudīt mūsu API.

Mūsu API testēšana ar Postman

Projekta direktorijā izpildiet tālāk norādīto.

node <filename>.js

Tas sāks API, kur <filename>atrodas failā norādītais sākuma package.jsonfails. Pēc tam savā datorā/Mac datorā atveriet Postman un Newaugšējā labajā stūrī noklikšķiniet uz pogas " Request" , pēc tam noklikšķiniet uz " ". Atrodoties tur, jums vajadzētu redzēt joslu ar uzrakstu " GET" blakus tai. Šeit mēs ievadīsim mūsu pieprasījuma URL. Vienkārši ievadiet tālāk norādīto pieprasījuma URL sadaļā un noklikšķiniet uz " Send".

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

Jūs redzēsit " 'API is online'".

API maršruti

Lai apstrādātu maršrutus, mēs izmantosim Express maršrutētāju. Ja nezināt, kas ir maršrutētājs, būtībā tas ir tas, kā lietojumprogrammu galapunkti reaģē uz klientu pieprasījumiem. Šeit ir norādīti maršruti, kurus mēs izveidosim kā piemēru:

  • /api/numbers - Parāda visus skaitļus no 1 līdz 10.

  • /api/letters - Parāda visus burtus no AZ.

Tagad mēs izveidosim savu pirmo maršruta starpprogrammatūras struktūru, piemēram, tā.

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

Šajā piemērā mēs izveidojām situāciju, kurā lietotājs var pieprasīt skaitļa + 1 summu, norādot tā vārda formu, izmantojot GET metodi. Mēs izmantojam router.route()funkciju, lai norādītu uz numuru, kuru mēs vēlamies nosūtīt atpakaļ. Parametri ir nosaukti ar " :" pirms tiem. Mēs piekļūstam šiem parametriem, izmantojot req.params.

Šeit ir piemērs ar burtiem.

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

Mēs izmantojam to pašu metodi, kas norādīta iepriekš, taču mēs nosūtām vēstuli atpakaļ ar lielo burtu.

Ievads NGINX

NGINX ir plaši pazīstama atvērtā pirmkoda programmatūra, ko izmanto tīmekļa apkalpošanai, reversajiem starpniekserveriem, straumēšanai un citam. Mēs izmantosim NGINX, lai mainītu mūsu API starpniekserveri, lai mēs varētu to palaist portā 80, jo Node.js neļauj izveidot savienojumus portos, kas ir mazāki par 1024 bez root piekļuves. Tas var noderēt, saistot domēnu ar serveri.

Notiek NGINX iestatīšana

Lai sāktu NGINX instalēšanu, terminālī būs jāpalaiž tālāk norādītā darbība un jāgaida, līdz instalēšana tiks pabeigta.

sudo apt-get install nginx

Tālāk mēs vēlēsimies izveidot mūsu vietnes failu, ko NGINX izmantos, lai mainītu mūsu lietotnes starpniekserveri.

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

Aizpildiet failu ar tālāk norādīto, pēc tam — CTRL+, Olai to saglabātu.

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

Izmantojot to pašu portu, kurā mēs palaidām savu lietojumprogrammu iepriekš, mēs sakām Nginx novirzīt visus pieprasījumus no mūsu IP adreses portā 80uz mūsu API, kas darbojas portā 8080.

Pēc tam iespējojiet apgriezto starpniekserveri, simsaitijot mūsu jaunizveidoto failu ar sites-availablemapi:

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

Tas nodrošinās, ka NGINX mainīs mūsu API starpniekserveri.

Pirmā palaišana ar NGINX

Kad būsim pabeiguši NGINX konfigurāciju, mēs startēsim NGINX, pēc tam sāksim mūsu API. Pirmkārt, restartējiet NGINX.

sudo systemctl restart nginx

Pēc tam atgriezieties savā API direktorijā un sāciet to.

node <filename>.js

Lietojumprogramma darbosies portā 80. Vienkārši palaidiet testu no augšas ar Postman, lai pārliecinātos, ka viss darbojas pareizi.

Mūsu API darbības uzturēšana

Ražošanas vidē vēlaties pārliecināties, vai jūsu Node lietojumprogrammām ir procesa pārvaldnieks, lai nodrošinātu, ka tās pastāvīgi darbojas fonā. Šajā apmācībā mēs izmantosim procesu pārvaldnieku ar nosaukumu PM2 (Process Manager 2), kas ir procesa pārvaldnieks Node.js lietojumprogrammām, kas nodrošinās to darbību mūžīgi ar minimālu dīkstāves laiku. PM2 ir aprīkots ar daudziem noderīgiem pārvaldības rīkiem, piemēram, apturēšanu, atkārtotu ielādi, pauzi un citiem. Lai instalētu PM2, ierakstiet tālāk norādīto un gaidiet, līdz tas tiek instalēts.

sudo npm install pm2 -g

Kad tā ir instalēta, jums tikai jāpārliecinās, ka atrodaties projekta direktorijā, ierakstiet tālāk norādīto, un lietojumprogramma tiks startēta.

pm2 start <filename>.js

Mūsu lietojumprogrammas pārvaldība ar PM2

Kā minēts iepriekš, PM2 ir daži noderīgi rīki, kurus varat izmantot, lai labāk pārvaldītu savu lietojumprogrammu.

  • pm2 stop- Kā norāda nosaukums, tas ļauj apturēt pašlaik darbojošos lietojumprogrammu un apturēt tās procesu. Ja jūsu lietojumprogramma rada negaidītu rezultātu, noderēs tās apturēšana.

  • pm2 list- Saraksta funkcija ļauj skatīt visas pašlaik darbojošās lietojumprogrammas, izmantojot PM2, kartētas pēc to nosaukumiem. Ja vēlaties ātri pārbaudīt lietojumprogrammas darbības laiku, izmantojiet šo rīku.

  • pm2 restart- Ja jūsu lietojumprogramma kāda iemesla dēļ sasalst un vēlaties to atkārtoti ielādēt, pm2 restart to dara. Tas apturēs pieteikšanās procesu un atsāks to no jauna, izmantojot citu procesu.

  • pm2 monit- PM2 iebūvētais monitora rīks ļauj skatīt diagrammu ar jūsu lietojumprogrammas specifiskajām detaļām, piemēram, CPU/RAM lietojumu, lietotājam draudzīgā ncurses stila diagrammā. Tas ir noderīgi, ja vēlaties vizuālu priekšstatu par jūsu lietojumprogrammas slodzi.

Nobeiguma piezīmes

Mēs esam pabeiguši savu uzdevumu izveidot RESTful API, izmantojot Node.js, Express un apgriezto starpniekserveri, izmantojot NGINX. Jūtieties brīvi paplašināt šo apmācību. Izmantojot jauno API, varat paveikt daudzas lieliskas lietas, piemēram, pievienot autentifikācijas metodes, datubāzi, labāku maršrutu un kļūdu apstrādi un daudz ko citu. Ja jums ir domēns ar “A” ierakstu, kas jau ir iestatīts jūsu IP adresē, varēsit piekļūt savai API no sava domēna. Ja vēlaties uzzināt vairāk par Express.js, apmeklējiet viņu vietni http://expressjs.com . Lai uzzinātu vairāk par NGINX un apgriezto starpniekserveri, apmeklējiet vietni http://nginx.com . Lai uzzinātu vairāk par PM2, apmeklējiet viņu lapu http://pm2.keymetrics.io .

Atstājiet komentāru

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk