Node.js RESTful -sovellusliittymän luominen Express.js:n avulla Ubuntu 16.04 LTS:ssä

Tässä opetusohjelmassa opit määrittämään täydellisen RESTful API:n, joka palvelee HTTP-pyyntöjä Node.js:n ja Expressin avulla samalla, kun se kääntää välityspalvelimen NGINX:n kanssa Ubuntu 16.04 LTS:ssä. Käytämme Postman- nimistä sovellusta, erittäin tunnettu API-kehitystyökalu, jonka avulla voit testata sovellusliittymäämme ja varmistaa, että se on täysin toimiva ja toimii oikein. Node.js on nopea, monialustainen JavaScript-kehys, joka perustuu Chromen V8-moottoriin. Sitä käytetään sekä työpöytä- että palvelinsovelluksissa, ja se on kuuluisa yksisäikeisestä tapahtumasilmukan käsittelystään. Käytämme Node.js:ää taustana RESTful API:lle, joka on mukana Express.js:n kanssa, verkkosovelluskehyksemme, joka on rakennettu Node.js:lle. Express.js julkaistaan ​​ilmaisena ja avoimena ohjelmistona. Express on palvelinpuolen, JavaScriptillä kirjoitettu, ja se on suunniteltu API:iden rakentamiseen, mikä tekee siitä täydellisen projektiimme. Toisaalta Postman on erittäin tehokas HTTP-asiakas, joka pitää mielessä API-kehityksen. Se sisältää kaikki työkalut, joita saatat haluta API-kehitykseen.

Postimiehen asennus

Ensin haluat siirtyä Postmanin verkkosivustolle ja ladata ja asentaa Postman päätietokoneellesi (ei palvelimellesi). Kaikki asennusohjeet ovat heidän verkkosivuillaan.

Node.js:n asentaminen

Aluksi meidän on ensin asennettava Node.js, jotta voimme aloittaa API:n kehittämisen. Lataamme ja asennamme Node.js:n viralliselta verkkosivustolta.

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

Lisäksi haluat myös tarttua tarvittaviin rakennustyökaluihin, joista on apua moduulien kokoamisessa.

sudo apt-get install build-essential

Tässä opetusohjelmassa käytämme Node.js:n LTS-versiota, joka on versio 8.9.3.

Node.js-projektimme alustus

Meidän on alustettava uusi Node.js-projekti, joka sisältää sovelluksen. Voit tehdä tämän luomalla uuden hakemiston.

 mkdir expressapi 

Vaihda uuteen hakemistoon. Kun olet sisällä, suorita npm initja täytä kaikki vaaditut kehotteet. Pidä muistissa sovelluksesi "sisääntulokohta": luot tämän tiedoston myöhemmin. Kun olet valmis, näet package.jsontiedoston nykyisessä hakemistossasi. Se toimii kuvauksena projektistamme ja luettelee kaikki toiminnan edellyttämät riippuvuudet.

Express.js:n määrittäminen

Nyt määritämme Express.js:n ja sen riippuvuudet.

npm install express

Asennusprosessi alkaa. Kestää muutaman minuutin, ennen kuin kaikki on ladattu loppuun.

Aloitamme päätiedostomme

Seuraavaksi luomme pääaloitustiedostomme API:lle. Tässä käytät package.jsontiedostossa näkemääsi "sisääntulopistettä" . Tämän opetusohjelman vuoksi käytän oletusnimeämisjärjestelmää, index.js.

touch index.js

Avaa se sitten nanotekstieditorissa.

nano index.js

Päätiedostossamme haluamme ensin kutsua kaikki pääpakettimme ja rekisteröidä reitit.

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

Periaatteessa se, mitä teemme täällä, on sovelluksemme alustaminen ja perusreitittimen määrittäminen API:lle. Huomaa, että asetimme sovelluksemme portiksi 8080. Tarvitsemme tätä numeroa, kun määritämme RESTful API:n. Nyt olemme valmiita menemään eteenpäin ja testaamaan API:tamme.

Testaamme sovellusliittymäämme Postmanin kanssa

Suorita projektihakemistossa seuraava.

node <filename>.js

Tämä käynnistää API:n, jossa <filename>on tiedostossa määrittämäsi aloitustiedosto package.json. Avaa sitten Postman PC-/Mac-tietokoneellasi ja napsauta " New" -painiketta oikeassa yläkulmassa ja napsauta sitten " Request". Kun siellä, sinun pitäisi nähdä palkki, jonka GETvieressä lukee " ". Kirjoita tähän pyyntömme URL-osoite. Kirjoita vain seuraavat tiedot pyynnön URL-osioon ja napsauta " Send".

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

Näet " 'API is online'".

API-reitit

Reittien käsittelyyn käytämme Express-reititintä. Jos et tiedä, mikä reititin on, kyse on lähinnä siitä, kuinka sovelluksen päätepisteet vastaavat asiakkaan pyyntöihin. Tässä ovat reitit, joita määritämme esimerkkinä:

  • /api/numbers - Näyttää kaikki numerot 1-10.

  • /api/letters - Näyttää kaikki kirjaimet AZ:sta.

Nyt perustamme ensimmäisen reitin väliohjelmistorakenteen, kuten niin.

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

Tässä esimerkissä luomme tilanteen, jossa käyttäjä voi pyytää luvun + 1 summaa antamalla sen sanamuodon GET-menetelmällä. Käytämme router.route()funktiota osoittamaan, minkä numeron haluamme lähettää takaisin tuloksena. Parametrit on nimetty " :" -merkillä niiden edessä. Näihin parametreihin pääsee käsiksi req.params.

Tässä on esimerkki kirjaimista.

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

Käytämme samaa menetelmää kuin yllä, mutta lähetämme kirjeen takaisin isolla kirjoitettuna.

NGINX:n esittely

NGINX on tunnettu avoimen lähdekoodin ohjelmisto, jota käytetään verkkopalveluun, käänteisiin välityspalvelimiin, suoratoistoon ja muuhun. Käytämme NGINX:ää kääntämään API-välityspalvelinta, jotta voimme käyttää sitä portissa 80, koska Node.js ei salli yhteyksiä alle 1024 portteihin ilman pääkäyttäjän oikeuksia. Tästä voi olla hyötyä, kun liität verkkotunnuksesi palvelimeesi.

Asetetaan NGINX

NGINX:n asennuksen aloittamiseksi sinun on suoritettava seuraavat komennot päätteessäsi ja odotettava asennuksen valmistumista.

sudo apt-get install nginx

Seuraavaksi haluamme luoda sivustotiedostomme, jota NGINX käyttää kääntämään sovelluksemme välityspalvelinta.

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

Täytä tiedosto seuraavasti ja tallenna se sitten CTRL+ 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;
       }
}

Käyttämällä samaa porttia, jossa suoritimme sovelluksemme aiemmin, käskemme Nginxiä ohjaamaan kaikki pyynnöt portin IP-osoitteestamme portissa 80toimivaan API:han 8080.

Ota seuraavaksi käänteinen välityspalvelin käyttöön yhdistämällä äskettäin luotu tiedostomme sites-availablekansioon:

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

Tämä varmistaa, että NGINX kääntää sovellusliittymämme välityspalvelimen.

Ensimmäinen ajo NGINX:llä

Kun olemme saaneet valmiiksi NGINX-määrityksen, käynnistämme NGINX:n ja sitten API:n. Käynnistä ensin NGINX uudelleen.

sudo systemctl restart nginx

Vaihda sitten takaisin API-hakemistoosi ja käynnistä se.

node <filename>.js

Sovellus toimii portissa 80. Suorita testi ylhäältä Postmanilla varmistaaksesi, että kaikki toimii oikein.

API:n pitäminen käynnissä

Tuotantoympäristössä haluat varmistaa, että sinulla on prosessinhallinta Node-sovelluksille, jotta ne pysyvät käynnissä ikuisesti taustalla. Tässä opetusohjelmassa käytämme prosessinhallintaa nimeltä PM2 (Process Manager 2), joka on Node.js-sovellusten prosessinhallinta, joka pitää ne hengissä ikuisesti minimaalisella seisokkiajalla. PM2:ssa on monia hyödyllisiä hallintatyökaluja, kuten pysäytys, uudelleenlataus, tauko ja paljon muuta. Asenna PM2 kirjoittamalla seuraava ja odota, että se asentuu.

sudo npm install pm2 -g

Kun se on asennettu, sinun tarvitsee vain varmistaa, että olet projektihakemistossa, kirjoittaa seuraava ja sovellus käynnistyy.

pm2 start <filename>.js

Sovelluksemme hallinta PM2:lla

Kuten aiemmin mainittiin, PM2:ssa on hyödyllisiä työkaluja, joiden avulla voit hallita sovellustasi paremmin.

  • pm2 stop- Kuten nimestä voi päätellä, tämän avulla voit pysäyttää käynnissä olevan sovelluksen ja lopettaa sen prosessin. Jos sovelluksesi tuottaa odottamattoman tuloksen, sen pysäyttäminen on hyödyllistä.

  • pm2 list- Listatoiminnon avulla voit nähdä kaikki käynnissä olevat sovellukset PM2:n kautta niiden nimien mukaan. Jos sinun on tarkistettava nopeasti sovelluksesi käyttöaika, sinun tulee käyttää tätä työkalua.

  • pm2 restart- Jos sovelluksesi jumiutuu jostain syystä ja haluat ladata sen uudelleen, pm2 restart tekee juuri niin. Se lopettaa hakuprosessin ja aloittaa sen uudelleen eri prosessissa.

  • pm2 monit- PM2:n sisäänrakennetun näyttötyökalun avulla voit tarkastella kaaviota sovelluksesi erityisistä yksityiskohdista, kuten CPU/RAM-käytöstä, käyttäjäystävällisessä ncurses-tyylisessä kaaviossa. Tämä on hyödyllistä, jos haluat visuaalisen kuvan sovelluksesi latauksesta.

Loppuhuomautukset

Olemme nyt saaneet päätökseen tehtävämme luoda RESTful API, jossa käytetään Node.js:ää, Expressiä ja käänteinen välityspalvelin NGINX:n kanssa. Voit vapaasti laajentaa tätä opetusohjelmaa. Voit tehdä monia hienoja asioita uudella API:llasi, kuten lisätä todennusmenetelmiä, tietokantaa, parantaa reitin ja virheiden käsittelyä ja paljon muuta. Jos sinulla on verkkotunnus, jossa A-tietue on jo määritetty IP-osoitteellesi, voit käyttää API-sovellusliittymääsi verkkotunnuksestasi. Jos haluat lisätietoja Express.js:stä, käy heidän verkkosivustollaan osoitteessa http://expressjs.com . Lisätietoja NGINX:stä ja käänteisestä välityspalvelimesta on osoitteessa http://nginx.com . Lue lisää PM2:sta vierailemalla heidän sivullaan osoitteessa http://pm2.keymetrics.io .


Docker CE:n asentaminen Ubuntuun 16.04

Docker CE:n asentaminen Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Docker on sovellus, jonka avulla voidaan ottaa käyttöön säilöinä ajettavia ohjelmia. Se kirjoitettiin suositulla Go-ohjelmalla

Dirty Cow Exploitin korjaus CentOS:ssä

Dirty Cow Exploitin korjaus CentOS:ssä

Mikä on Dirty Cow (CVE-2016-5195)? Dirty Cow -haavoittuvuutta hyödynnetään siinä, miten Linux käsittelee koodia. Se mahdollistaa etuoikeutettujen käyttäjien gai:n

Aseta aikavyöhyke ja NTP Ubuntuun 14.04

Aseta aikavyöhyke ja NTP Ubuntuun 14.04

Vultr-palvelimia ei välttämättä oteta käyttöön palvelimellasi tarvitsemallasi aikavyöhykkeellä/päivämäärällä/-ajalla. Onneksi voimme asettaa aikavyöhykkeen manuaalisesti ongelmien estämiseksi

Ota Meteor-sovellus käyttöön Ubuntussa

Ota Meteor-sovellus käyttöön Ubuntussa

Tämä artikkeli opastaa sinua Meteor-sovelluksen käyttöönotossa Vultr VPS:ssä, jossa on Ubuntu 14.04. Se voi toimia myös muissa Linux-jakeluissa (yritä a

Kuinka asentaa osTicket FreeBSD 12:een

Kuinka asentaa osTicket FreeBSD 12:een

Käytätkö erilaista järjestelmää? osTicket on avoimen lähdekoodin asiakastuen lippujärjestelmä. osTicket-lähdekoodia isännöidään julkisesti Githubissa. Tässä opetusohjelmassa

Korkea käytettävyys käyttämällä yksityistä verkkoa Ubuntu 16.04:ssä Keepalivedin kanssa

Korkea käytettävyys käyttämällä yksityistä verkkoa Ubuntu 16.04:ssä Keepalivedin kanssa

Jotkut korkean käytettävyyden arkkitehtuurit vaativat kelluvan IP-osoitteen. Tämä toiminto on käytettävissä Vultr-alustalla, kun yksityinen verkko on toiminut

Määritä vain SFTP-käyttäjätilit Ubuntu 14:ssä

Määritä vain SFTP-käyttäjätilit Ubuntu 14:ssä

Johdanto Tietyt skenaariot edellyttävät, että luot käyttäjiä, joilla on luku- ja kirjoitusoikeudet yhteen hakemistoon vain FTP:n kautta. Tämä kirjoitus näyttää sinulle, kuinka t

Pysyvien Node.js-sovellusten määrittäminen Ubuntu 16.04:ssä

Pysyvien Node.js-sovellusten määrittäminen Ubuntu 16.04:ssä

Node.js-sovellukset ovat suosittuja skaalautumiskykynsä vuoksi. Useiden samanaikaisten prosessien suorittaminen useilla palvelimilla tuottaa pienemmän viiveen ja pidemmän käytettävyyden

Kuinka estää samanaikaiset yhteydet Linuxissa IPTablesin avulla

Kuinka estää samanaikaiset yhteydet Linuxissa IPTablesin avulla

iptables on palomuuriohjelmisto, joka löytyy monista jakeluista, mukaan lukien CentOS ja Ubuntu. Tässä asiakirjassa näet, kuinka voit estää samanaikaisuuden

How to Install BookStack on Ubuntu 16.04

How to Install BookStack on Ubuntu 16.04

Using a Different System? BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. BookStack is fully free and open

Tietojen palauttaminen SFTP:n kautta

Tietojen palauttaminen SFTP:n kautta

Tietojen palauttaminen SFTP:n kautta Tapauksissa, joissa asennettu käyttöjärjestelmä kohtaa virheen, joka ei salli käyttöjärjestelmän käynnistymistä normaalisti, data voi olla tarpeen noutaa

OpenVPN-palvelimen luominen Ubuntu 16.04:ssä

OpenVPN-palvelimen luominen Ubuntu 16.04:ssä

Johdanto OpenVPN on suojattu VPN, joka käyttää SSL:ää (Secure Socket Layer) ja tarjoaa laajan valikoiman ominaisuuksia. Tässä oppaassa on hyvä kattaa prosessi

Node.js:n asentaminen lähteestä Ubuntu 14.04:ään

Node.js:n asentaminen lähteestä Ubuntu 14.04:ään

Asenna rakennustyökalut Tarvitaan useita työkaluja. Suorita seuraava komento: apt-get install make g++ libssl-dev git Lataa Node.js lähde Se i

Bro IDS:n asentaminen Ubuntu 16.04:ään

Bro IDS:n asentaminen Ubuntu 16.04:ään

Käytätkö erilaista järjestelmää? Johdanto Bro on tehokas avoimen lähdekoodin verkkoanalyysikehys. Bros keskittyy ensisijaisesti verkkoturvallisuuden valvontaan. Br

Devtoolsin käyttäminen Arch Linuxissa

Devtoolsin käyttäminen Arch Linuxissa

Devtools-paketti tehtiin alun perin luotettaville käyttäjille, jotta he voivat luoda paketteja oikein virallisiin tietovarastoihin. Tavallinen käyttäjä voi kuitenkin käyttää sitä

Makepkg:n käyttäminen Arch Linuxissa

Makepkg:n käyttäminen Arch Linuxissa

Jos käytät makepkg:a suoraan, se saastuttaa järjestelmääsi jonkin verran. Peruskehityksen pakettiryhmä on asennettava. Tällä tavalla oletusarvoisesti riippuvuuksia tarvitaan vain

Päivitä Linux-ydin ilman uudelleenkäynnistystä LivePatchilla Ubuntu 16.04:ssä

Päivitä Linux-ydin ilman uudelleenkäynnistystä LivePatchilla Ubuntu 16.04:ssä

Vultr VPS:n pitäminen ajan tasalla on tärkeää turvallisuuden ja suorituskyvyn kannalta. Tämän prosessin ydin on varmistaa, että järjestelmäsi toimii uusimpien versioiden kanssa

Prosessin mukavuuden (ensisijainen) säätäminen useimmissa Linux-jakeluissa

Prosessin mukavuuden (ensisijainen) säätäminen useimmissa Linux-jakeluissa

GNU/Linux-järjestelmissä hienoutta käytetään määrittämään prosessin suorittimen prioriteetti. Pohjimmiltaan se on prioriteetin vastakohta. Joten mitä mukavampi prosessi on, th

Kuinka asentaa PM2 Ubuntu 16.04:ään

Kuinka asentaa PM2 Ubuntu 16.04:ään

PM2 on erittäin suosittu Node-prosessinhallinta, joka tekee NodeJS-sovellusten suorittamisesta helppoa. PM2 helpottaa sovellusten uudelleenkäynnistämistä, käynnistää kaatumisen automaattisesti uudelleen

How to Install OpenMeetings on Ubuntu 16.04

How to Install OpenMeetings on Ubuntu 16.04

Using a Different System? Apache OpenMeetings is an open source web conferencing application. It is written in Java and supports multiple database servers. I

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja