Vuonna 2021 JavaScript oli eniten käytetty ohjelmointikieli.
Tämän tekniikan houkuttelevuus on kiistaton, kuten monet JavaScript-ohjelmoinnin mahdollistavat puitteet osoittavat.
Käyttöliittymässä on Angular, React ja Vue sekä taustapuolella Express ja Next, muutamia mainitakseni.
Koska JavaScriptin taustaohjelmointiin on saatavilla niin monia upeita puitteita, saatat miettiä, miksi etsisin jotain erilaista sen sijaan, että käyttäisin vain Expressiä tai Seuraavaa.
Ehkä sinun on käynnistettävä kehitysprosessi nopeasti kunnollisella kattilalevyllä, ja uusien ohjaimien lisäksi myös palveluiden manuaalinen lisääminen saa sinut sairaaksi.
Tai haluat luoda suuria, skaalautuvia ohjelmistoja, joita on helppo hallita. Tai ehkä haluat vain työskennellä tehokkaammin ja mukavammin.
Riippumatta siitä, mikä on totta tilanteessasi, Nest.js voi olla täydellinen ratkaisu tarpeisiisi.
Tämä viesti tarjoaa NestJS-näkemyksiä sekä käytännön kokemusta.
Mikä on NestJS?
NestJS on progressiivinen Node-kehys, joka on avoimen lähdekoodin, laajennettavissa ja mukautuva .Js puitteet taustajärjestelmien rakentamiseen, sitouttamiseen ja haastamiseen. Se on nyt nopein kasvuvauhti.
TypeScript-kehys js:lle. NestJS:llä luodaan sovelluksia, jotka ovat skaalautuvia, testattavia ja löyhästi yhdistettyjä.
Se lisää Nodeen skaalautuvuutta. Js-palvelimet on viety täysin uudelle tasolle. PostgreSQL, MongoDB ja MySQL ovat tuettuja tietokantoja.
NestJS on laajennettavissa, koska sitä voidaan käyttää muiden kirjastojen kanssa. joustava sen mukautuvan täysimittaisen ekosysteemin ansiosta. Ja progressiivinen, koska se tukee JavaScript-ominaisuuksia ja suunnitteluperiaatteita.
Siihen vaikuttavat ensisijaisesti Angular, React ja Vue, ja siinä on sisäänrakennettu riippuvuusinjektio.
Ominaisuudet
- Sitä on helppo käyttää, oppia ja hallita.
- Se on ilmainen ja avoimen lähdekoodin (MIT-lisenssi)
- Tehokas Command Line Interface (CLI) lisää tuottavuutta ja yksinkertaistaa kehitystä
- Yksikkötestausohjelmat, joita on helppo käyttää
- TypeScriptiä, tiukasti kirjoitettua kieltä, joka on JavaScriptin pääjoukko, käytetään.
- Aktiivisen koodikannan kehittäminen ja ylläpito.
- Tuki sadoille pesäkohtaisille moduuleille, joiden avulla on helppo liittää suosittuihin teknologioihin ja ideoihin, kuten TypeORM, Mongoose, GraphQL, lokiin, validointiin, välimuistiin, WebSocketsiin ja muihin.
Mitkä ovat NestJS:n rakennuspalikoita?
Nest-sovellusten rakennuskomponentit on lueteltu alla; on muitakin, mutta nämä kolme ovat merkittävimmät. Katsotaanpa niitä nopeasti.
1. ohjaimet
Rekisterinpitäjät vastaavat saapuvien pyyntöjen käsittelystä ja asiakkaille vastaamisesta. Se vastaanottaa tiettyjä HTTP-pyyntöjä, ja reititysjärjestelmä määrittää, mikä ohjain vastaanottaa minkä pyynnön.
Sitten se laatii sopivan vastauksen lähetettäväksi. Luokkien ja sisustajien avulla rakennetaan yksinkertainen keräilijä ja jokaisella ohjaimella on omat reittinsä eri tehtävien suorittamiseen.
2. Palveluntarjoajat
Palveluntarjoajat ovat Nestin keskeinen idea. Monet Nest-ydinluokat – palvelut, tietovarastot, tehtaat, avustajat ja niin edelleen – voidaan käsitellä palveluntarjoajina.
Palveluntarjoajan peruskäsitys on, että se voidaan pistää riippuvuutena; Tämä tarkoittaa, että objektit voivat muodostaa erilaisia assosiaatioita keskenään, ja objektien esiintymien "johdotus" voidaan pääasiassa ulkoistaa Nest-ajonaikaiselle järjestelmälle.
3. moduulit
Moduuli on luokka, jossa on @Module()-koriste, joka järjestää sovelluksen rakenteen komponentit. Jokaisella sovelluksella on juurimoduuli, jota käytetään sovelluskaavion rakentamiseen, mikä edelleen ratkaisee toimittajan ja moduulin väliset riippuvuudet ja vuorovaikutukset.
Tämä koristelu antaa metatiedot Nest.js:lle tunnistaakseen, mitä komponentteja, ohjaimia tai muita resursseja käytetään sovelluskoodissa, ja yhdistää ne yhdeksi joukoksi.
Jokaisella moduulilla on kokoelma ominaisuuksia, jotka on yhdistetty jollain tavalla.
NestJS:n käytön aloittaminen
1. Asennus
Asennetaan NestJS ja tehdään projekti sen kanssa seuraavasti:
Tämän seurauksena luodaan seuraava hakemistorakenne:
2. ohjaimet
Pesän rakennuspalikoita ovat ohjaimia. Nämä ovat paikkoja, joissa saapuvat pyynnöt käsitellään. Voit määrittää reittipolun HTTP-menetelmän muokkaajilla (Get, Post, Put, Delete ja niin edelleen) koristeilla alla olevan koodin mukaisesti.
Nestjs käyttää sisustaja-lähestymistapaa ja on enimmäkseen kehitetty Typescriptillä, vaikka se tukee myös JavaScriptiä. Voit myös käyttää luokan validaattoria pyynnön rungon vahvistamiseen.
Aion vain tehdä Nestjs-palvelinesiintymän ja lisätä ValidationPipen maailmanlaajuisesti. Putket ovat vain menetelmiä, jotka suoritetaan ennen ohjaimia. Putket voidaan käyttää myös menetelmä/argumenttitasolla @UsePipes-dekoraattorin avulla.
3. Palveluntarjoajat
Palveluntarjoajat ovat toinen Nestjs:n tärkeä osa. Toistaiseksi tallensin tietoja väliaikaiseen muuttujaan. Siksi niin yksinkertainen tehtävä voidaan suorittaa Controller-käsittelijöiden avulla.
Suuremmassa, monimutkaisemmassa logiikassa koodin erottaminen ja uudelleenkäyttö olisi kuitenkin vaikeaa. Tällöin toimittajat tulevat sisään. Voit ilmoittaa/luoda palveluntarjoajan luokan päälle käyttämällä @Injectable decorator -sovellusta. Palveluntarjoajien avulla voit sitten tehdä riippuvuuden lisäämistä, kirjaamista ja muita tehtäviä.
4. moduulit
Nestjs-moduulit eivät ole globaaleja; sen sijaan niissä on syvyyttä.
Se voidaan kuitenkin jakaa myös muiden moduulien kanssa. Vaikka se, kuten Angular, tarjoaa globaaleja moduuleita, on suositeltavaa pitää palvelut/ohjaimet siinä moduulissa, jossa niitä käytetään yleisimmin Nestjsissä.
NestCLI:tä käytetään moduulien tuottamiseen suurimman osan ajasta, ja CLI lisää automaattisesti kyseisen moduulin yhteydessä luodut toimittajat/ohjaimet. Näitä kutsutaan ominaisuusmoduuleiksi.
5. Poikkeussuodattimet
Poikkeussuodattimet ovat virhekäsittelijöitä, joita kutsutaan, kun ohjain tekee poikkeuksen. Se hallitsee ongelman automaattisesti ja lähettää asianmukaisen, käyttäjäystävällisen virheilmoituksen.
Paketti @nestjs/common tarjoaa monia HttpExceptionin perittyjä poikkeuksia, mukaan lukien NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException ja monet muut. Voit jopa suunnitella oman poikkeussuodattimen.
6. Väliohjelmisto
Toimintoa, joka kutsutaan ennen reitinkäsittelijää, kutsutaan väliohjelmistoksi. Pyyntö- ja vastausobjektit sekä next()-väliohjelmistotoiminto sovelluksen pyyntö-vastausjaksossa ovat väliohjelmistotoimintojen käytettävissä.
Muuttujaa nimeltä next käytetään tyypillisesti tunnistamaan seuraava väliohjelmistotoiminto. Mukautettu Nest-väliohjelmisto voidaan toteuttaa menetelmässä tai luokassa @Injectable()-decoratorilla.
7. Vartijat
Vartijat ovat vastuussa vain yhdestä asiasta. Heidän vastuullaan on arvioida, käsitteleekö rekisterinpitäjä pyynnön tiettyjen olosuhteiden perusteella (erityisesti käyttäjän määrittelemä logiikka).
Se on hyödyllinen todentamisessa/valtuutuksessa ja on suositeltu menetelmä Nestjsissä.
Vaikka todennus/luvat jne. voidaan tehdä väliohjelmistolla, sitä ei tehdä pika- tai muissa HTTP-palvelimissa, koska niillä ei ole asiaan liittyvää vahvaa kontekstia eikä niillä ole syytä tietää, millä menetelmällä pyyntö käsitellään.
edut
- Kehys on vahvasti riippuvainen huomautuksista, joita käytetään tuottamaan mitä tahansa päätepisteistä Swagger-dokumentaatioon. Päätepisteet ovat perusluonteisia ja siistejä, ja merkinnät helpottavat kehitystä yleisesti.
- Yleiskäyttöisten moduulien ulkoistaminen ja koodin uudelleenkäyttö monissa projekteissa on helppoa, koska Nest.js on moduulipohjainen kehys.
- Angular vaikuttaa merkittävästi Nest.js:n kansiorakenteeseen. Nest-palvelua suunniteltaessa tämä mahdollistaa minimaalisen seisokkiajan.
- Komponenteilla on omat hakemistonsa, joiden juuri sisältää sovellusmoduulin ja päätiedoston. Rakenteen yksinkertaisuuden vuoksi enemmän huomiota voidaan kiinnittää päätepisteiden ja niiden asiakkaiden suunnitteluun sovelluksen rakenteen sijaan.
- Nest, kuten Angular, tarjoaa mukavan komentorivityökalun, Nestjs/cli, joka on saatavilla Node Package Managerin kautta.
Haitat
- Nestillä on etu TypeScript-käytön ja Angular-integraation suhteen, mutta siitä puuttuu valtavan yrityksen taloudellinen tuki.
- Dokumentaation puute on suurin uhka Nest-käyttäjille. Vaikka viitekehyksellä on erinomainen vuorovaikutus muiden viitekehysten kanssa, dokumentaatio on niukkaa eikä siinä puutu mahdollisiin vaikeuksiin.
- Nestillä on etu TypeScriptin käytön ja Angularin suhteen.
Yhteenveto
NestJS tarjoaa kehittäjille valtavan mahdollisuuden. Aloita kehittäminen, sinun tarvitsee vain luo uusi sovellus ja olet hyvä lähtemään. Tämä kehys antaa heti merkittävän sysäyksen ja auttaa sinua myös lisävaiheissa luomalla sopivan sovellusarkkitehtuurin.
Se hyödyntää huippuluokan menetelmiä ja teknologiaa tuottaakseen sovelluksia, jotka ovat sekä hallittavia että kestäviä. Sitä voidaan käyttää yhteyden muodostamiseen GraphQL:iin, WebSocketsiin ja mikropalveluiden rakentamiseen.
Jätä vastaus