Daptar eusi[Sumputkeun][Témbongkeun]
Dina 2021, JavaScript mangrupikeun basa pamrograman anu paling seueur dianggo.
Daya tarik téknologi ieu teu tiasa dipungkir, sapertos katingal ku seueurna kerangka anu ngamungkinkeun pemrograman JavaScript.
Aya Angular, React, sareng Vue on frontend, kitu ogé Express and Next on backend, pikeun nyebatkeun sababaraha.
Kalawan jadi loba frameworks éndah pikeun programming backend di JavaScript diaksés, Anjeun bisa jadi mikir naha kuring bakal neangan hal béda tinimbang saukur ngagunakeun Express atanapi Next.
Panginten anjeun kedah ngamimitian prosés pangwangunan gancang kalayan boilerplate anu santun, sareng sacara manual nambihan henteu ngan ukur pengendali énggal tapi ogé jasa ngajantenkeun anjeun gering.
Atawa rék nyieun badag, software scalable nu basajan pikeun ngatur. Atanapi anjeun ngan ukur hoyong damel dina cara anu langkung éfisién sareng merenah.
Henteu paduli anu leres dina kaayaan anjeun, Nest.js tiasa janten solusi anu sampurna pikeun kabutuhan anjeun.
Pos ieu bakal masihan wawasan NestJS ogé pangalaman langsung.
Naon NestJS?
SarangJS mangrupikeun kerangka Node progresif anu open-source, tiasa dilegakeun, sareng tiasa adaptasi .Js kerangka pikeun ngawangun, ngalakonan jeung nangtang sistem backend. Ayeuna mangrupikeun Node kalayan tingkat pertumbuhan anu paling gancang.
Kerangka TypeScript pikeun js. NestJS dianggo pikeun nyiptakeun aplikasi anu tiasa skala, tiasa diuji, sareng teu nyambung.
Éta nambihan skalabilitas ka Node. Js server geus dibawa ka tingkat anyar sakabeh. PostgreSQL, MongoDB, sareng MySQL mangrupikeun basis data anu didukung.
NestJS tiasa diperpanjang sabab tiasa dianggo sareng perpustakaan sanés; fléksibel kusabab ékosistem pinuh-fledged adaptable na. Sareng kutang sabab ngadukung fitur JavaScript sareng prinsip desain.
Utamana dipangaruhan ku Angular, React, sareng Vue sareng hadir sareng suntikan dependensi anu diwangun.
Fitur
- Gampang dianggo, diajar, sareng ngawasaan.
- Éta bébas tur open-sumber (lisensi MIT)
- Kuat Komando Line Interface (CLI) pikeun ngaronjat produktivitas jeung ngembangkeun kesederhanaan
- program Unit-nguji anu basajan ngagunakeun
- TypeScript, basa diketik ketat anu superset tina JavaScript, dianggo.
- Ngembangkeun sareng ngajaga basis kode aktip.
- Rojongan pikeun ratusan modul husus sarang anu matak ngagampangkeun antarmuka sareng téknologi populér sareng ideu sapertos TypeORM, Mongoose, GraphQL, logging, validasi, cache, WebSockets, sareng seueur deui.
Naon blok wangunan NestJS?
Komponén wangunan aplikasi Nest dibéréndélkeun di handap; aya batur, tapi tilu ieu paling signifikan. Hayu urang nempo aranjeunna gancang.
1. Controllers
Controllers jawab ngolah requests asup jeung ngarespon kana klien. Éta nampi pamundut HTTP khusus, sareng sistem routing nangtukeun mana controller anu nampi pamundut mana.
Éta teras ngadamel jawaban anu cocog pikeun dikirimkeun. Kalayan bantosan kelas sareng dekorator, kolektor saderhana diwangun sareng unggal pengendali gaduh rute rute sorangan pikeun ngalakukeun sababaraha tugas.
2. Panyadia
Panyadia mangrupikeun ide konci dina Nest. Seueur kelas inti Nest - jasa, repositori, pabrik, pembantu, sareng saterasna - tiasa diurus salaku panyadia.
Pamanggih dasar panyadia nyaéta yén éta tiasa disuntik salaku kagumantungan; Ieu nunjukkeun yén objék tiasa ngabentuk sababaraha asosiasi sareng anu sanés, sareng peran "wiring up" instansi objék tiasa di-outsource kana sistem runtime Nest.
3. Modul
A modul mangrupakeun kelas kalawan @Module () decorator nu organizes komponén struktur aplikasi urang. Unggal aplikasi gaduh modul akar anu dianggo pikeun ngawangun grafik aplikasi, anu salajengna ngabéréskeun katergantungan sareng interaksi antara panyadia sareng modul.
Dekorator ieu masihan metadata ka Nest.js pikeun ngaidentipikasi komponén mana, pangendali, atanapi sumber sanésna anu bakal dianggo dina kode aplikasi sareng ngagabungkeun kana hiji set.
Unggal modul gaduh koleksi kamampuan anu disambungkeun ku sababaraha cara.
Ngamimitian nganggo NestJS
1. parabot nu geus dipasang di tempatna sarta sadia dipake
Hayu urang pasang NestJS sareng ngadamel proyék nganggo éta ku nuturkeun léngkah-léngkah ieu:
Struktur diréktori di handap ieu bakal didamel salaku hasil ieu:
2. Controllers
Blok wangunan sayang nyaéta controller. Di handap ieu mangrupakeun lokasi dimana requests inbound bakal diatur. Anjeun tiasa nangtukeun jalur jalur ngagunakeun modifiers métode HTTP (Get, Post, Put, Delete, jeung saterusna) decorators, sakumaha katingal dina kode handap.
Nestjs ngagunakeun pendekatan decorator sarta lolobana dimekarkeun dina Typescript, sanajan eta oge ngarojong JavaScript. Anjeun oge bisa make validator kelas pikeun sangkan méré konfirmasi awak pamundut.
Abdi badé ngadamel conto server Nestjs sareng nambihan ValidationPipe sacara global. Pipa ngan ukur metode anu ngajalankeun sateuacan Controllers. Pipa ogé tiasa diterapkeun dina tingkat metode/argumen nganggo dekorator @UsePipes.
3. Panyadia
Panyadia mangrupakeun komponén kritis séjén tina Nestjs. Sajauh, kuring nyimpen data dina variabel samentara. Éta sababna tugas saderhana sapertos kitu tiasa dilaksanakeun nganggo panangan Controller.
Nanging, pikeun logika anu langkung ageung, langkung rumit, pamisahan kode sareng dianggo deui bakal sesah. Ieu nalika suppliers asup. Anjeun tiasa ngadéklarasikeun / nyieun panyadia on luhureun kelas hiji ku ngagunakeun decorator @Injectable. Teras, nganggo panyadia, anjeun tiasa ngalakukeun suntikan dependensi, logging, sareng tugas sanés.
4. Modul
modul Nestjs henteu global; tibatan, aranjeunna gaduh jero.
Nanging, éta ogé tiasa dibagikeun sareng modul anu sanés. Sanaos éta, sapertos Angular, nawiskeun Modul Global, langkung saé tetep Layanan / Kontroler dina modul dimana aranjeunna paling sering dianggo dina Nestjs.
NestCLI dipaké pikeun ngahasilkeun modul lolobana waktu, sarta panyadia / controller dihasilkeun dina konteks modul urang otomatis ditambahkeun ku CLI. Ieu katelah modul fitur.
5. Saringan iwal
Saringan iwal nyaéta panangan kasalahan anu disebat nalika Controller ngalungkeun pengecualian. Éta otomatis ngatur masalah sareng ngirimkeun pesen kasalahan anu cocog sareng ramah-pamaké.
Loba HttpException diwariskeun Exceptions disadiakeun ku pakét @nestjs/common, kaasup NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, sarta loba batur. Anjeun malah tiasa ngarancang ExceptionFilter anjeun nyalira.
6. Alat tengah
Hiji fungsi anu invoked saméméh pawang rute disebut middleware. Paménta jeung réspon objék, kitu ogé salajengna () fungsi middleware dina siklus pamundut-respons aplikasi, diaksés ka fungsi middleware.
Variabel anu disebut salajengna biasana dianggo pikeun ngaidentipikasi fungsi middleware salajengna. middleware sayang custom bisa dilaksanakeun dina metoda atawa kelas ngagunakeun @Injectable () decorator.
7. Penjaga
Penjaga ngan tanggung jawab hiji hal. Tanggung jawabna pikeun meunteun naha pamenta bakal diolah ku pangontrol dumasar kana kaayaan khusus (Husus, logika anu didefinisikeun ku pangguna).
Éta mangpaat pikeun auténtikasi / otorisasina sareng mangrupikeun metode anu disarankeun dina Nestjs.
Padahal auténtikasi / idin, jeung sajabana, bisa dipigawé maké middleware, éta henteu dipigawé dina express atanapi server HTTP séjén saprak maranéhna teu boga konteks kuat patali jeung teu boga alesan uninga metoda nu bakal dipaké pikeun ngolah pamundut teh.
kaunggulan
- Kerangka ieu pisan ngandelkeun anotasi, anu dianggo pikeun ngahasilkeun naon waé tina titik tungtung ka dokuméntasi Swagger. Titik akhirna dasar sareng rapih, sareng anotasi ngagampangkeun pangwangunan sacara umum.
- Ieu basajan pikeun externalize modul-tujuan umum tur make deui kode dina loba proyék saprak Nest.js mangrupakeun kerangka basis modul.
- Struktur folder Nest.js sacara signifikan dipangaruhan ku Angular. Nalika ngarancang jasa Nest, hal ieu ngamungkinkeun pikeun downtime minimal.
- Komponén gaduh diréktori sorangan, kalayan akar ngandung modul aplikasi sareng file utama. Kusabab kesederhanaan strukturna, langkung seueur perhatian tiasa diperhatoskeun kana desain titik tungtung sareng konsuménna tinimbang struktur aplikasi.
- Nest, sapertos Angular, nawiskeun alat garis paréntah anu saé, Nestjs/cli, anu sayogi ngalangkungan Node Package Manager.
kalemahan
- Sarang gaduh kaunggulan dina hal pamakean TypeScript sareng integrasi sudut, tapi éta kurang dukungan kauangan perusahaan ageung.
- Kurangna dokuméntasi nyababkeun ancaman anu paling ageung pikeun pangguna Nest. Sanajan kerangka boga interaksi alus teuing jeung frameworks séjén, dokuméntasi téh sparse tur teu alamat sagala kasusah poténsial.
- Nest gaduh kaunggulan dina hal pamakean TypeScript sareng Angular.
kacindekan
NestJS nyayogikeun pamekar kalayan leg anu ageung. Pikeun ngamimitian pangwangunan, sadaya anu anjeun kedah laksanakeun nyaéta nyieun aplikasi anyar sareng anjeun badé angkat. Kerangka ieu langsung masihan dorongan anu signifikan, bari ogé ngabantosan anjeun dina léngkah-léngkah tambahan ku ngadamel arsitéktur aplikasi anu cocog.
Éta ngagunakeun metode sareng téknologi canggih pikeun ngahasilkeun aplikasi anu tiasa diurus sareng tahan lama. Éta tiasa dianggo pikeun nyambung ka GraphQL, WebSockets, sareng ngawangun microservices.
Leave a Reply