Hvernig á að búa til Node.js RESTful API með Express.js á Ubuntu 16.04 LTS

Í þessari kennslu muntu læra hvernig á að setja upp fullkomið RESTful API, sem mun þjóna HTTP beiðnum með því að nota Node.js og Express á meðan það er öfugt umboð með NGINX, á Ubuntu 16.04 LTS. Við munum nota forrit sem heitir Postman, mjög vel þekkt API þróunarverkfæri, til að prófa API okkar og ganga úr skugga um að það sé að fullu virkt og virki rétt. Node.js er hröð JavaScript rammi sem byggir á V8 vél Chrome. Það er notað bæði í skjáborðs- og netþjónaforritum og er frægt fyrir einþráða atburðalykkju meðhöndlun. Við munum nota Node.js sem stuðning fyrir RESTful API okkar, ásamt Express.js, vefforritsramma okkar sem er smíðað fyrir Node.js. Express.js er gefinn út sem frjáls og opinn hugbúnaður. Express er miðlarahlið, skrifað í JavaScript og er hannað til að byggja upp API, sem gerir það fullkomið fyrir verkefnið okkar. Aftur á móti er Postman mjög öflugur HTTP viðskiptavinur, með API þróun í huga. Það inniheldur öll þau verkfæri sem þú gætir viljað til að þróa API.

Setja upp Postman

Í fyrsta lagi viltu fara yfir á vefsíðu Postman og hlaða niður og setja upp Postman fyrir aðaltölvuna þína (ekki netþjóninn þinn). Allar uppsetningarleiðbeiningar verða á heimasíðu þeirra.

Setur upp Node.js

Til að byrja þurfum við fyrst að setja upp Node.js svo við getum byrjað að þróa API okkar. Við munum hlaða niður og setja upp Node.js frá opinberu vefsíðunni.

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

Að auki muntu líka vilja grípa nauðsynleg byggingarverkfæri, sem munu vera gagnleg við að setja saman einingar.

sudo apt-get install build-essential

Fyrir þessa kennslu munum við nota LTS útgáfuna af Node.js, sem er útgáfa 8.9.3.

Frumstillir Node.js verkefnið okkar

Við þurfum að frumstilla nýtt Node.js verkefni, sem mun innihalda forrit. Til að gera það skaltu búa til nýja möppu.

 mkdir expressapi 

Skiptu yfir í nýju möppuna. Þegar þú ert inni skaltu keyra npm initog ljúka öllum nauðsynlegum leiðbeiningum. Hafðu í huga „inngangspunkt“ umsóknarinnar þinnar: þú munt búa til þessa skrá síðar. Þegar þú ert búinn muntu sjá package.jsonskrá í núverandi möppu. Það virkar sem lýsing á verkefninu okkar og listar öll ósjálfstæði sem þarf til að virka.

Setja upp Express.js

Nú munum við stilla Express.js og ósjálfstæði þess.

npm install express

Uppsetningarferlið mun hefjast. Það mun taka nokkrar mínútur fyrir allt að klára að hlaða niður.

Byrjar á aðalskránni okkar

Næst munum við búa til aðal upphafsskrána okkar fyrir API okkar. Hér er þar sem þú munt nota „inngangspunktinn“ sem þú sást í package.jsonskránni. Í þágu þessa kennslu mun ég nota sjálfgefið nafnakerfi, index.js.

touch index.js

Opnaðu það síðan í nanó textaritlinum.

nano index.js

Í aðalskránni okkar viljum við fyrst hringja í alla helstu pakka okkar og skrá leiðir okkar.

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

Í grundvallaratriðum er það sem við erum að gera hér að frumstilla appið okkar og setja upp grunnbeini fyrir API okkar. Athugaðu að við stillum gátt forritsins okkar á 8080. Við þurfum þetta númer þegar við stillum RESTful API okkar. Nú erum við tilbúin að halda áfram og prófa API okkar.

Er að prófa API okkar með Postman

Í verkefnaskránni skaltu keyra eftirfarandi.

node <filename>.js

Þetta mun ræsa API, þar sem <filename>er upphafsskráin sem þú tilgreindir í package.jsonskránni. Opnaðu síðan Postman á tölvunni þinni/Mac og smelltu á " New" hnappinn efst í hægra horninu og smelltu síðan á " Request". Þegar þú ert þarna ættirðu að sjá stiku sem segir " GET" við hliðina á henni. Hér munum við slá inn beiðni vefslóð okkar. Sláðu einfaldlega inn eftirfarandi í hlutanum fyrir beiðni um vefslóð og smelltu á " Send".

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

Þú munt sjá " 'API is online'".

API leiðir

Til að sinna leiðum munum við nota Express beininn. Ef þú veist ekki hvað beini er, þá er það í meginatriðum hvernig endapunktar forrita bregðast við beiðnum viðskiptavina. Hér eru leiðirnar sem við munum setja upp sem dæmi:

  • /api/numbers - Sýnir allar tölur frá 1-10.

  • /api/letters - Sýnir alla stafi frá AZ.

Nú munum við setja upp okkar fyrstu leið millihugbúnaðaruppbyggingu, eins og svo.

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

Í þessu dæmi setjum við upp aðstæður þar sem notandi getur beðið um summan af tölu + 1 með því að gefa upp orðmynd hennar, með því að nota GET aðferðina. Við notum router.route()aðgerðina til að benda á hvaða númer við viljum senda til baka í kjölfarið. Færibreytur eru nefndar með " :" fyrir framan þær. Við fáum aðgang að þessum færibreytum í gegnum req.params.

Hér er dæmi með stöfum.

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

Við notum sömu aðferð og hér að ofan, en við sendum bréfið til baka með hástöfum.

Kynning á NGINX

NGINX er vel þekktur opinn hugbúnaður sem notaður er fyrir vefþjónustu, öfuga umboð, streymi og fleira. Við munum nota NGINX til að snúa við proxy API okkar, til að leyfa okkur að keyra það á höfn 80, vegna þess að Node.js leyfir ekki tengingar á höfnum undir 1024 án rótaraðgangs. Þetta getur komið sér vel þegar þú tengir lénið þitt við netþjóninn þinn.

Uppsetning NGINX

Til að byrja að setja upp NGINX þarftu að keyra eftirfarandi í flugstöðinni þinni og bíða eftir að uppsetningunni lýkur.

sudo apt-get install nginx

Næst viljum við búa til síðuskrána okkar sem NGINX mun nota til að snúa umboði appinu okkar.

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

Fylltu skrána með eftirfarandi, síðan CTRL+ Otil að vista hana.

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

Með því að nota sömu höfn og við keyrðum forritið okkar á áður, erum við að segja Nginx að beina öllum beiðnum frá IP tölu okkar á höfn 80til API okkar sem keyrir á höfn 8080.

Næst skaltu virkja andstæða umboðið með því að tengja nýstofna skrána okkar við sites-availablemöppuna:

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

Þetta mun tryggja að NGINX mun snúa við proxy API okkar.

Fyrst keyrt með NGINX

Þegar við höfum lokið við NGINX uppsetninguna munum við ræsa NGINX og síðan ræsa API okkar. Fyrst skaltu endurræsa NGINX.

sudo systemctl restart nginx

Skiptu síðan aftur í API möppuna þína og ræstu hana.

node <filename>.js

Forritið mun keyra, á höfn 80. Einfaldlega keyrðu prófið að ofan með Postman, til að tryggja að allt virki rétt.

Halda API okkar gangandi

Í framleiðsluumhverfi viltu ganga úr skugga um að þú hafir vinnslustjóra fyrir Node forritin þín til að tryggja að þau haldist að eilífu í gangi í bakgrunni. Í þessari kennslu munum við nota vinnslustjóra sem heitir PM2 (Process Manager 2), sem er vinnslustjóri fyrir Node.js forrit sem mun halda þeim lifandi að eilífu með lágmarks niður í miðbæ. PM2 kemur með mörgum gagnlegum stjórnunarverkfærum, svo sem að stöðva, endurhlaða, gera hlé og fleira. Til að setja upp PM2 skaltu slá inn eftirfarandi og bíða eftir að það sé sett upp.

sudo npm install pm2 -g

Þegar það hefur verið sett upp er allt sem þú þarft að gera að ganga úr skugga um að þú sért í verkefnaskránni, sláðu inn eftirfarandi og forritið verður ræst.

pm2 start <filename>.js

Umsjón með umsókn okkar með PM2

Eins og fyrr segir hefur PM2 nokkur gagnleg verkfæri sem þú getur notað til að stjórna forritinu þínu betur.

  • pm2 stop- Eins og nafnið gefur til kynna gerir þetta þér kleift að stöðva forritið sem er í gangi og drepa ferli þess. Ef forritið þitt skilar óvæntri niðurstöðu, þá kemur það sér vel að stöðva það.

  • pm2 list- Listaaðgerðin gerir þér kleift að sjá öll forritin sem eru í gangi í gegnum PM2, kortlögð með nöfnum þeirra. Ef þú þarft fljótt að athuga spenntur forritsins þíns ættir þú að nota þetta tól.

  • pm2 restart- Ef forritið þitt frýs af einhverjum ástæðum og þú vilt endurhlaða það, þá gerir pm2 endurræsa það. Það mun drepa umsóknarferlið og hefja það aftur, undir öðru ferli.

  • pm2 monit- Innbyggt skjától PM2 gerir þér kleift að skoða línurit af sérstökum smáatriðum forritsins þíns, svo sem CPU/RAM notkun, á notendavænu grafi í ncurses-stíl. Þetta er gagnlegt ef þú vilt fá sjónræna mynd af álagi forritsins þíns.

Lokaorð

Við höfum nú lokið verkefni okkar að búa til RESTful API, nota Node.js, Express, og öfugt umboð með NGINX. Ekki hika við að útvíkka þessa kennslu. Þú getur gert marga frábæra hluti með nýja API, eins og að bæta við auðkenningaraðferðum, gagnagrunni, betri leið og villumeðferð og margt, margt fleira. Ef þú ert með lén, með „A“ skráningu þegar uppsett á IP tölu þinni, þá muntu geta fengið aðgang að API frá léninu þínu. Ef þú vilt læra meira um Express.js skaltu fara á heimasíðu þeirra á http://expressjs.com . Til að læra meira um NGINX og öfugt umboð, farðu á http://nginx.com . Til að lesa meira um PM2 skaltu fara á síðuna þeirra á http://pm2.keymetrics.io .


Settu upp Cacti á Debian Jessie

Settu upp Cacti á Debian Jessie

Inngangur Cacti er opinn vöktunar- og grafatól sem byggir að fullu á RRD gögnum. Í gegnum Cacti geturðu fylgst með næstum hvers kyns tækjum

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Inngangur Lets Encrypt er vottunaryfirvaldsþjónusta sem býður upp á ókeypis TLS/SSL vottorð. Uppsetningarferlið er einfaldað af Certbot,

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Að nota annað kerfi? Hvað er Tekkit Classic? Tekkit Classic er modpack fyrir leikinn sem allir þekkja og elska; Minecraft. Það inniheldur eitthvað af ver

Settu upp iRedMail á Debian Wheezy

Settu upp iRedMail á Debian Wheezy

Að nota annað kerfi? Þessi kennsla mun sýna þér hvernig á að setja upp hópbúnaðinn iRedMail á nýrri uppsetningu á Debian Wheezy. Þú ættir að nota þjóna

Að búa til Jekyll blogg á Ubuntu 16.04

Að búa til Jekyll blogg á Ubuntu 16.04

Að nota annað kerfi? Jekyll er frábær valkostur við WordPress til að blogga eða deila efni. Það krefst enga gagnagrunna og það er mjög auðvelt i

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

PHP og tengdir pakkar eru algengustu íhlutirnir þegar vefþjónn er notaður. Í þessari grein munum við læra hvernig á að setja upp PHP 7.0 eða PHP 7.1 o

Hvernig á að setja upp Squid Proxy á CentOS

Hvernig á að setja upp Squid Proxy á CentOS

Smokkfiskur er vinsælt, ókeypis Linux forrit sem gerir þér kleift að búa til framsendingarforrit á vefnum. Í þessari handbók muntu sjá hvernig á að setja upp Squid á CentOS til að snúa þér

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Inngangur Lighttpd er gaffal af Apache sem miðar að því að vera miklu minna auðlindafrekt. Hann er léttur, þess vegna heitir hann, og er frekar einfaldur í notkun. Uppsetning

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

1. Virtualmin/Webmin Virtualmin er öflugt og sveigjanlegt stjórnborð fyrir vefhýsingu fyrir Linux og UNIX kerfi byggt á hinum vel þekkta Open Source vefgrunni

Setja upp Yii forrit á Ubuntu 14.04

Setja upp Yii forrit á Ubuntu 14.04

Yii er PHP ramma sem gerir þér kleift að þróa forrit hraðar og auðveldlega. Uppsetning Yii á Ubuntu er einföld, þar sem þú munt læra nákvæmlega

Notkun Skjár á Ubuntu 14.04

Notkun Skjár á Ubuntu 14.04

Skjár er forrit sem leyfir margs konar notkun flugstöðvarlota innan eins glugga. Þetta gerir þér kleift að líkja eftir mörgum flugstöðvum gluggum þar sem það ma

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Þessi kennsla útskýrir hvernig á að setja upp DNS netþjón með Bind9 á Debian eða Ubuntu. Í gegnum greinina skaltu skipta út-léninu þínu.com í samræmi við það. Á þ

Notkun Logrotate til að stjórna annálaskrám

Notkun Logrotate til að stjórna annálaskrám

Inngangur Logrotate er Linux tól sem einfaldar stjórnun annálaskráa. Það keyrir venjulega einu sinni á dag í gegnum cron-vinnu og stjórnar annálagrunni

Stilla Static Networking og IPv6 á CentOS 7

Stilla Static Networking og IPv6 á CentOS 7

VULTR hefur nýlega gert breytingar á enda þeirra og allt ætti nú að virka vel út úr kassanum með NetworkManager virkt. Ef þú vilt slökkva á

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Icinga2 er öflugt eftirlitskerfi og þegar það er notað í aðal-viðskiptavinamódel getur það komið í stað þörf fyrir NRPE-undirstaða vöktunareftirlit. Húsbóndinn

Settu upp Red5 Media Server á Ubuntu 16.04

Settu upp Red5 Media Server á Ubuntu 16.04

Að nota annað kerfi? Red5 er opinn uppspretta miðlara útfærður í Java sem gerir þér kleift að keyra Flash fjölnotendaforrit eins og straumspilun í beinni

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Í þessari grein munum við sjá hvernig á að setja saman og setja upp Nginx mainline frá opinberum heimildum Nginx með PageSpeed ​​einingunni, sem gerir þér kleift að

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Að nota annað kerfi? Apache Cassandra er ókeypis og opinn uppspretta NoSQL gagnagrunnsstjórnunarkerfi sem er hannað til að veita sveigjanleika, háan

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Að nota annað kerfi? Vanilla forum er opinn uppspretta spjallforrit skrifað í PHP. Það er fullkomlega sérhannaðar, auðvelt í notkun og styður utanaðkomandi

Hvernig á að setja upp Gitea á Debian 9

Hvernig á að setja upp Gitea á Debian 9

Að nota annað kerfi? Gitea er annað opinn uppspretta, sjálfhýst útgáfustýringarkerfi knúið af Git. Gitea er skrifað á Golang og er

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira