Selaineen kohdistuvien sovellusten luominen solmu.js saa tylsiä. Express.js on JavaScript Framework omistettu yksi sivu ja monisivuiset sovellukset, jotka on järjestetty solmu.js-ympäristöön.
Se tarjoaa ohut kerros perustavanlaatuisia web-sovellusten ominaisuuksia, jotka eivät peitä solmua.js-ominaisuuksia olet jo perehtynyt, joten voit olla varma, että valmiin sovelluksesi on naarmuuntunut suorituskykyä. Ja se on myös erinomainen luomaan vankan API: n luomisen HTTP-hyödyllisyysmenetelmien ja Middleware-koneen ansiosta.
Jos haluat vähemmän monimutkaisen vaihtoehdon, voit luoda sivuston ilman koodausta Verkkosivuston rakentaja . Kummassakin tapauksessa, varmista, että saat sivujen ylläpito Palveluoikeus. Haluatko aloittaa? Tässä on mitä sinun tarvitsee tietää Express.js.
Express.js ylpeilee "käyttämättömänä" - toisin sanoen puitteet mahdollistavat kehittäjän sekoittamaan ja ottelemaan arkkitehtuurien, malleja ja margup moottoreita. Valitettavasti suurella voimalla on suuri vastuu.
Express-kehittäjäryhmä pyrkii pehmentämään isku esittelemällä projektin generaattori (jos suunnittelet tiimin rinnalla, ota käyttöön paras pilvivarasto pitää asiat yhtenäisenä). Se tulee työasemalle NPM-paketin muodossa ja auttaa kokeitamme seuraavilla kehyksellä:
TAMHAN @ Tamhan-ThinkPad: ~ / Desktop /
Stuff / 2018AUG / Futureexpressjs /
Workspace $ sudo npm asennus
Express-Generator-G
Generaattori sisältää myös kymmeniä projektivaihtoehtoja - tämän vaiheen mukana oleva luku näyttää täyden aputulostuksen. Yksinkertaisuuden vuoksi rajoitamme itsellemme projektiin oletusasetusten perusteella. Käynnistää sen sukupolven prosessin:
TAMHAN @ Tamhan-ThinkPad: ~ / Desktop /
Stuff / 2018AUG / Futureexpressjs /
Workspace $ Express Futuretest
VAROITUS: Oletusnäkymä Engine ei ole Jade tulevissa julkaisuissa.
Kun se on tehty, nykyinen työhakemisto sisältää uuden kansion nimeltä Futuretest '. Se on kotihankkeemme ja se on määritettävä käyttämällä NPM: n paketin latauskomentoa. Kirjoitushetkellä generaattori sisältää Jade View Generaattorin - hankkeen tarkoituksena on muuttaa tätä lähitulevaisuudessa, velvoitetaan siirtymään parametriin valitsemalla Näytä moottori. Vaihtoehtoisesti pyytää mopsien käyttöä - se on Jade-moottorin virallinen seuraaja:
CD FutureTest /
NPM asennus
Nyt kun hankkeen generaattori on tehnyt sen asian, anna meidän app.js valinnan toimittajaan. Sen - paljon lyhennetty rakenne aiheuttaa itsensä seuraavasti:
var indeksiRouter = vaatia ('./
reitit / indeksi ");
var EtsersRouter = vaatia ('./
reitit / käyttäjät ');
var App = Express ();
// Näytä moottorin asetukset
App.set ("näkemykset", Path.Join (__
dirname, 'näkemykset');
App.set ("Näytä Engine", "Jade");
App.use (logger ("dev"));
App.use (Express.json ());
App.use (Express.urlencoded ({
Laajennettu: False}));
App.use (cookiparsser ());
App.use (Express.Stic (polku.
Liity (__ dirname, "julkinen"));
Express.js on erittäin modulaarinen. App.JS toimii lähtökohtana, jossa yksi tai useampi käyttö () -toiminnot mahdollistavat eri pyyntöjen käsittelemisen komponenttien lisäämisen. "SET ()" Säädä parametreja moottorissa - joista yksi on edellisessä vaiheessa mainittu Jade-katselun moottorin asennus.
Web-sisällön todellinen päästö tapahtuu reitittimen luokissa. Lyhyyden vuoksi rajoitamme itsellemme hakemistoon.js:
var Express = vaativat ("Express");
var reititin = express.raster ();
reititer.get ('/', toiminto (Req, Res,
Seuraava) {
Res.Render ("Indeksi", {Otsikko:
'Express'});
});
Module.Exports = reititin;
"Hanki ()" on mukana matterin merkkijono ja tapahtuman käsittelijä, joka saa vedotaan aina, kun vastaava tapahtuma tapahtuu. Meidän tapauksessamme valitun mallimoottorin tekomenetelmälle kerrotaan palauttamaan sisältöä käyttäjän selaimeen, joka on kirjautunut sisään.
Tässä vaiheessa olemme valmiita ottamaan verkkosivuston spin ensimmäistä kertaa. Palaa päätelaitteeseen, joka sisältää Express.js-asennuksen ja soita NPM Aloita debug-lippuasetuksella:
Debug = MyApp: * NPM Start
Kun olet valmis, kirjoita http: // localhost: 3000 / valinnan selaimeen katsomaan projektin generaattorin luomaa telineitä. Kun olet tehnyt, paina ctrl + C Sulje ikkuna ja palata ohjaus komentorivin tulkkiin - muista, että tämä sulkee myös virheenkorjausverkon palvelimen.
Yksinkertaisuuden vuoksi olemme yhtä mieltä siitä, että verkkosovellus koostuu yleensä maahantulopisteistä. Express.js käsittelee nämä reitittimen luokan kautta - ajattele sitä sellaisten menetelmien arkistona, jotka saavat vastauksena saapuvan pyynnön.
Uuden päätepisteen lisääminen sovellukseen suoritetaan lisäämällä uusi työntekijä jonossa. Automaattinen esimerkki luo kaksi reitittimen tyyppiä, joista kukin nostetaan käyttämällä "vaatimuksia" -menetelmää:
var indeksiRouter = vaatia ('./
reitit /
indeksi');
var EtsersRouter = vaatia ('./
reitit /
käyttäjien);
Seuraavassa vaiheessa "App.use" rekisteröi reitittimet ja yhdistää ne pyyntövarastoihin. Koodimme lisäksi lisää virheenkäsittelijää, joka saa vedon, jos järjestelmään syötetään ei-olemassa oleva URL-osoite:
App.use ('/', IndexRouter);
App.use ('/ käyttäjät ", käyttäjät);
App.use (toiminto (Req, Res, Seuraava)
{
Seuraava (CreateError (404));
});
Avaa käyttäjät.js ja muokkaa koodiaan alla:
Router.get ('/ User1', Toiminto (REQ,
Res,
Seuraava) {
res.Send ("tulevaisuus sanoo Hello
1 ');
});
reititer.get ('/', toiminto (Req, Res,
Seuraava) {
res. ("Vastaa a
resurssi');
});
Uusien reittien lisääminen Express.js on mekaaninen prosessi. Tartu valinnan reitittimen kohteeksi ja vedota http-verbin vastaavaan menetelmään, jota etsit. Seuraavaksi siirry merkkijonoon, joka lisätään "App.use" rekisteröityyn "Offset". Tästä hetkestä lähtien sekä http: // localhost: 3000 / käyttäjät / käyttäjä1 ja http: // localhost: 3000 / käyttäjät / Palauta kelvollinen vastaus.
Muista, että Express.js ei rajoitu käsittelemään "saada" resursseja. "Post ()", "Laita ()" ja "Poista ()" Käsittele perinteisiä neljä http-pyyntöä, jossa kymmeniä muita verbimenetelmiä, jotka tarjoavat epätavallisempia tarpeita. Lopuksi "Req" -objekti tarjoaa pääsyn pyynnön otsikkoon - laita se hyödyksi parametrien tai asiakkaan tietojen jäsentämisessä.
Reittien lisääminen käsin sairastuu ohjelman monimutkaisuuden kasvaessa. Express.js sopii tähän ongelmaan ottamalla käyttöön sekä whordcard että säännöllinen lauseke tuki. Katso esimerkiksi seuraavaa ilmoitusta, joka käyttää säännöllistä lauseketta vastaamaan erilaisia merkkijonoja sisältäviä merkkijonoja.
App.get (/.* koira $ /, toiminto (req,
res) {
...})
Neljä HTTP-pyyntöä on riitä kaikille (hattu kärki Bill Gatesiin), Express.js voi myös työskennellä lisäprotokollien kanssa. Express-ws on erityisen maukas ehdokas tähän osioon - se laajentaa Express.js-ulottuvuuden sisällyttämään WebSocket Communications.
Kun plugin lisätään pää Express.js-projektiin, jotta se toteutetaan "vaatimusten avulla". Se palauttaa auttaja-esineen, joka sisältää kaiken mutta yhden menetelmän - kutsua se muodostaa yhteyden reitittimen ja plugin välillä:
var Expressws = vaatia ("Express-
WS ')
sovellus);
Tämän jälkeen voidaan kutsua uuden menetelmän "WS ()" lisäämään uusia reittejä, jotka perustuvat WebSocket Technology:
app.ws ('/', toiminto (WS, REQ) {
WS.on (viesti ", toiminto (msg)
{
konsoli.log (msg);
});
Console.log ("Socket", Req.
testaus); });
Heidän prototyyppi eroaa normaaleista reiteistä "WS" -kohdan läsnäolon vuoksi - se tarjoaa pääsyn asiakkaalle, joka on liitetty asiakkaalle, joka on kytketty yhteydestä vastaavaan asiakkaalle.
Perustuu solmuun.js tarkoittaa, että rikas plugin-ekosysteemi on komennolla, kun työskentelet web-pohjaisissa sovelluksissa. Esimerkiksi SQL- ja NOSQL-tietokantojen käyttö - yleensä poikkeuksellisen tylsiä tehtävää - voidaan käsitellä tietokannan myyjien toimittamien laajennuksilla. Varsinainen käyttöönotto on yhtä helppoa kuin tarvittava NPM-moduuli - jos koodi on käyttää REDIS-tietokantaa, lisää seuraavasti:
Var Redis = vaativat ("REDIS)
var client = redis.createclient ()
Client.set ("StringKey", "AVAL",
Redis.Print)
. . .
Tietenkin muisti SQLite on myös tuettu:
var sqlite3 = vaatia ('sqlite3').
verbose ()
var db = uusi sqlite3.
Tietokanta (': Muisti:')
db.serialize (toiminto () {
db.run ("Luo taulukko Lorem
(Info Teksti) ')
Muista, että solmu.js-integraatio ei rajoitu tietokannan laajennuksiin. Seikkailunhaluiset kehittäjät voisivat mennä niin pitkälle kuin Tessel-tuotteet, mikä luo web-sovelluksia, jotka voivat myös olla vuorovaikutuksessa Esineiden internet laitteet.
Yksi alue, jossa yksinkertaiset ja todelliset ohjelmat eroavat toisistaan näkemyksen luominen. Vaikka pieni esimerkkiprojekti käyttää yleensä käsin muotoiltuja merkkijonoja, suuret HTML: n suuret kääreet, joissa on liitettyjä asioita, on erittäin ärsyttävää.
Template-moottorit tarjoavat siistillisen kiertotavan. Ne mahdollistavat ennalta määritellyt skeematiedostojen luomisen, joka voidaan astua ohjelmoitaessa toteuttamisessa.
Esimerkkiohjelman tapauksessa näkemykset asettavat .Jade-tiedostot. Avausindeksi paljastaa seuraavan rakenteen:
Laajentaa ulkoasua
Estä sisältö
H1 = otsikko
P Tervetuloa # {Otsikko}
Kurskalaisiin kiinnikkeisiin liittyvät lausekkeet toimivat mallilaitteina, joiden arvot on vaihdettava runsaana. Index.JS vetoaa parametrien esineeseen, mikä johtaa tämän vaiheen mukana olevassa luvussa näkyvän aloitussivun renderointiin:
Router.get ('/', toiminto (REQ, RES,
Seuraava) {
Res.Render ("Indeksi", {Otsikko:
'Express'});
});
Useimmat mallimoottorit voivat myös jäsentää armorit, kun ne on varustettu kohteen mallilla. Tällöin jokainen taulukko näytetään yhdellä DOM-mallilla - Androidissa löydetyn listan näytön malli on puhtaasti satunnaista. Express.js ei rajoitu ennalta määritettyihin mallipohjaihin. Jos sinusta tuntuu rullaamalla omaa jostain syystä, noudata vain ohjeita tässä - Periaatteessa sinun on ohitettava kaikki vain yksi toiminto.
Express.js-sovellukset ovat yleensä CSS-tiedostoja ja kuvia. Näiden palveleminen Render-toiminnon kautta on tehoton - älykkäämpi tapa osallistuu niiden lähettämiseen heidän iloisesti perinteisellä HTTP-pyynnöstä. Tämä voidaan saavuttaa "Express.Stic () -toiminnon kautta, joka voi merkitä koko kansiot vientiin:
App.use (Express.Static ("Julkinen"))
App.use (Express.Stic ("Tiedostot))
Lopuksi, anna meidän mainita aikavälin lähiaikoina. Express.js kielen alueella Middleware on joukko yhtä tai useampaa komponenttia, jotka integroivat itseään vastapäätä olevaan vuokaavioon. Niitä voidaan sitten käyttää muokkaamaan pyyntöjä, kun ne kulkevat reititysjärjestelmän kautta - kun se toteutetaan oikein, rajaton toiminto voidaan saavuttaa.
Lisäksi joitakin valmiita komponentteja löytyy tässä - Käy tällä sivustolla ennen laajamittaisen kehityshankkeen aloittamista.
Testaus Express.JS-pohjaiset sovellukset ovat helppoa. Ongelmia ilmenee, kun haluat, että sivu pääsee kolmansille osapuolille - koska se syntyy solmu.js-ympäristöön, ei ole mitään keinoa saada staattista kuvaa FTP: n käyttöönotto Web Hosting-palveluihin.
Teoriassa ei ole mitään vastoin vadelma PI, orangepi, oma palvelin tai virtuaalinen kone, joka on vuokrattu pilvipalvelusta tai virtuaalisen hosting-palveluntarjoajalta. Täyden virtuaalikoneen vuokraaminen voi kuitenkin rasittaa teitä noudattamaan toteutusympäristöä ja käyttöjärjestelmää ajan tasalla.
Jos tämä tehtävä ei ole sinun makusi, alusta-AS-A-palveluntarjoaja voi olla houkuttelevampi (vaikkakin useimmissa tapauksissa melko tyyris) valinta.
Monet kehittäjät pitävät Herokua, ja sen hinnoittelu näkyy tämän boxoutin mukana olevassa luvussa, jotta se on kultainen standardi kaikkiin Node.js-hostingiin liittyviin asioihin.
Tämä on kuitenkin vähän epäoikeudenmukaista totuudessa - Amazonin elastinen beanstalk, Googlen pilvialusta ja Microsoftin Azure kaikki tarjoavat samanlaisen tuen Remote.js-pohjaiseen hyötykuormille. Kaikissa näissä järjestelmissä pääasiallinen kysymys käsittelee - kun taas Azure tunnetaan hitaasti käyttöönotosta, muut palveluntarjoajat rasittavat kehittäjiä erittäin monimutkaisten konfigurointijärjestelmien vaikeasti käytössä.
Lisäksi Node.js -ympäristön tuettu versio eroaa palveluntarjoajalta. Tietenkin meillä ei ole tarpeeksi tilaa kattamaan aiheen syvyydessä. Vierailla Mozillan käyttöönotto-opetusohjelma ja Express.js ' Suorituskyky ja luotettavuus ja turvallisuus Parhaat käytännöt sivut joillekin kysymyksistä. Varmista, että tarkastelemme palveluntarjoajan dokumentaatiota parhaimmille käytännöille.
Express.js's Development Cycle ei ole kaukana sileä: kehittäjät ovat hyvin tunnettuja usein API-muutoksista, jotka edellyttävät asiakaskoodin uudelleenkirjoittamista. Siirtyminen 3.x: sta 4.x oli erityisen tuskallinen, minkä vuoksi 5.x: n lähestyvä vapautuminen saattaa jättää melko vähän sinusta tuntuu epämukavalta.
Vaikka Express.js 5.0 tuo muutamia rikkoutumismuutoksia, niiden vaikutus on rajallinen. Ensinnäkin joukko jo poistettuja toimintoja poistetaan todelliseksi - jos koodi käyttää niitä edelleen, päivitys 5.x vaatii huoltoa.
Näkymämoottoreiden suunnittelijat tarkastavat "Res.Render ():" Rank-kasvun kannalta, joka on johtanut siihen, että jotkut synkroniset toteutukset liukastuvat. Kehysten versio 5 parantaa suorituskykyä panemalla asynkroninen renderointi.
Sen lisäksi, että joukko Sundry parannuksia ja muutoksia dokumentoitu tässä Näkee jonkin verran sukupuuttoon liittyviä ominaisuuksia aiemmista versioista - lisäksi jotkin pitkäaikaiset vikoja vahvistetaan uuteen julkaisuun.
Lopuksi on tietoinen siitä, että voit jo kokeilla uutta versiota. Luo yksinkertaisesti kopio lähdekoodistasi, napata päätelaitteen ja anna seuraava komento ladataksesi arkistoon tuskin testatun verenvuoto-reuna JavaScript. Ole turvallinen.
$ NPM Install Express @ & GT; = 5.0.0-
Alpha.1 --Sve
Tämä artikkeli julkaistiin alun perin Bange 279 Creative Web Design Magazine Web Designer. Osta numero 279 täällä tai Tilaa Web-suunnittelija tähän .
Aiheeseen liittyvät artikkelit:
(Kuva luotto: tulevaisuus) Nykyaikaiset verkkosivustot vaativat paljon HTML-koodia. Monimutkaiset ulkoasut, joissa on..
(Kuva luotto: tulevaisuus) Kun Apple käynnisti ensin SmartWatchin yleisölle, kaikki tunsivat, että uskomattomilla ..
Reagoida natiivi on foorumi, jonka avulla voit rakentaa Native Mobile -sovelluksia JavaScript-laitteella. Kuten nimi ..
Kun tutkitaan eläintarha, eläimet ja villieläimet ovat aina olleet suuri intohimo minulle ja en koskaan väsy maalaamalla heitä. Olemme onnekkaita asumaan Lincolnshiren maaseudulla ja on ..
Tämän kappaleen tavoitteena oli tuottaa pala 3D-taide Se on valmis menemään suoraan kehyspuskurista, jossa on ..
Pyydetään kuvaamaan minun maalaustekniikka on outoa minulle ja rehellisesti on vaikea tehdä. Olen intuitiivinen..
Lyhyemmällä oppimiskäyrällä kuin Invision App ja upouusi suunnittelu HandOff työkalut yritysjoukkueille, ei ole parempaa ai..