Ing taun 2021, JavaScript minangka basa pamrograman sing paling akeh digunakake.
Daya tarik teknologi iki ora bisa dipungkiri, kaya sing dideleng saka akeh kerangka kerja sing mbisakake pemrograman JavaScript.
Ana Angular, React, lan Vue ing frontend, uga Express lan Next ing backend, kanggo sebutno sawetara.
Kanthi akeh kerangka kerja sing apik kanggo program backend ing JavaScript sing bisa diakses, sampeyan bisa uga mikir kenapa aku bakal nggoleki sing beda tinimbang mung nggunakake Express utawa Next.
Sampeyan bisa uga kudu miwiti proses pangembangan kanthi cepet kanthi boilerplate sing apik, lan kanthi manual nambahake ora mung pengontrol anyar nanging uga layanan nggawe sampeyan lara.
Utawa sampeyan pengin nggawe gedhe, piranti lunak keukur sing gampang kanggo ngatur. Utawa mbok menawa sampeyan mung pengin kerja kanthi cara sing luwih efisien lan trep.
Apa wae sing bener ing kahanan sampeyan, Nest.js bisa dadi solusi sing cocog kanggo kabutuhan sampeyan.
Kiriman iki bakal menehi wawasan NestJS uga pengalaman langsung.
Apa NestJS?
NestJS minangka kerangka kerja Node progresif sing mbukak-sumber, bisa ditambahi, lan bisa adaptasi .Js framework kanggo mbangun, sistem backend makarya lan tantangan. Saiki dadi Node kanthi tingkat pertumbuhan paling cepet.
Kerangka TypeScript kanggo js. NestJS digunakake kanggo nggawe aplikasi sing bisa diukur, bisa diuji, lan ora nyambung.
Iku nambah skalabilitas kanggo Node. Server Js wis dijupuk menyang tingkat anyar. PostgreSQL, MongoDB, lan MySQL kalebu database sing didhukung.
NestJS bisa diperluas amarga bisa digunakake karo perpustakaan liyane; fleksibel amarga ekosistem sing bisa adaptasi kanthi lengkap. Lan progresif amarga ndhukung fitur JavaScript lan prinsip desain.
Utamane dipengaruhi dening Angular, React, lan Vue lan dilengkapi injeksi dependensi sing dibangun.
fitur
- Iku prasaja kanggo nggunakake, sinau, lan master.
- Iku free lan Open-sumber (lisensi MIT)
- Antarmuka Command Line (CLI) sing kuat kanggo nambah produktivitas lan kesederhanaan pangembangan
- Program tes unit sing gampang digunakake
- TypeScript, basa sing diketik kanthi ketat sing minangka superset JavaScript, digunakake.
- Pangembangan lan pangopènan basis kode aktif.
- Dhukungan kanggo atusan modul khusus nest sing nggawe antarmuka gampang karo teknologi lan ide populer kaya TypeORM, Mongoose, GraphQL, logging, validasi, caching, WebSockets, lan liya-liyane.
Apa blok bangunan NestJS?
Komponen bangunan aplikasi Nest kapacak ing ngisor iki; ana liyane, nanging telu iki sing paling pinunjul. Ayo padha ndeleng kanthi cepet.
1. Pengontrol
Kontroler tanggung jawab kanggo ngolah panjaluk sing mlebu lan nanggapi klien. Iki nampa panjaluk HTTP tartamtu, lan sistem routing nemtokake controller sing njaluk panjaluk kasebut.
Iku banjur konsep jawaban cocok kanggo ngirim metu. Kanthi bantuan saka kelas lan dekorator, kolektor prasaja dibangun lan saben controller duwe rute dhewe kanggo nindakake macem-macem tugas.
2. Panyedhiya
Panyedhiya minangka ide utama ing Nest. Akeh kelas inti Nest - layanan, repositori, pabrik, pembantu, lan liya-liyane - bisa ditangani minangka panyedhiya.
Pamanggih dhasar A panyedhiya iku bisa nyuntikaken minangka katergantungan; iki gawe katut sing obyek bisa mbentuk macem-macem asosiasi karo siji liyane, lan peran "wiring munggah" kedadean obyek bisa utamané outsourced kanggo sistem runtime Nest.
3. Modul
Modul minangka kelas kanthi dekorator @Module () sing ngatur komponen struktur aplikasi. Saben aplikasi nduweni modul ROOT sing digunakake kanggo mbangun grafik aplikasi, sing luwih ngrampungake dependensi lan interaksi antarane panyedhiya lan modul kasebut.
Dekorator iki menehi metadata menyang Nest.js kanggo ngenali komponen, pengontrol, utawa sumber daya liyane sing bakal digunakake ing kode aplikasi lan gabungke dadi siji set.
Saben modul nduweni koleksi kapabilitas sing disambungake ing sawetara cara.
Miwiti karo NestJS
1. instalasi
Ayo instal NestJS lan gawe proyek nganggo langkah-langkah iki:
Struktur direktori ing ngisor iki bakal digawe minangka asil:
2. Pengontrol
Blok bangunan Nest minangka pengontrol. Iki minangka lokasi ing ngendi panjaluk mlebu bakal ditangani. Sampeyan bisa nemtokake dalan rute nggunakake modifiers metode HTTP (Get, Post, Put, Delete, lan liya-liyane), kaya sing katon ing kode ing ngisor iki.
Nestjs nggunakake pendekatan dekorator lan biasane dikembangake ing Typescript, sanajan uga ndhukung JavaScript. Sampeyan uga bisa nggunakake validator kelas kanggo validasi awak request.
Aku mung arep nggawe conto server Nestjs lan nambah ValidationPipe global. Pipa mung cara sing dieksekusi sadurunge Pengontrol. Pipa uga bisa diterapake ing tingkat metode/argumen nggunakake dekorator @UsePipes.
3. Panyedhiya
Panyedhiya minangka komponen kritis liyane saka Nestjs. Nganti saiki, aku nyimpen data ing variabel sementara. Pramila tugas sing prasaja bisa ditindakake kanthi nggunakake panangan Controller.
Nanging, kanggo logika sing luwih gedhe, luwih rumit, pemisahan kode lan panggunaan maneh bakal angel. Iki nalika supplier teka. Sampeyan bisa ngumumake / nggawe panyedhiya ing ndhuwur kelas kanthi nggunakake decorator @Injectable. Banjur, nggunakake panyedhiya, sampeyan bisa nindakake injeksi dependensi, logging, lan tugas liyane.
4. Modul
Modul Nestjs ora global; tinimbang, padha duwe ambane.
Nanging, bisa dienggo bareng karo modul liyane. Sanajan, kaya Angular, nawakake Modul Global, luwih becik njaga Layanan / Kontrol ing modul sing paling umum digunakake ing Nestjs.
NestCLI digunakake kanggo ngasilake modul paling akeh, lan panyedhiya / pengontrol sing digawe ing konteks modul kasebut kanthi otomatis ditambahake dening CLI. Iki dikenal minangka modul fitur.
5. Saringan Pangecualian
Filter pangecualian minangka panangan kesalahan sing dijaluk nalika Controller mbuwang pengecualian. Ngatur masalah kasebut kanthi otomatis lan ngirim pesen kesalahan sing cocog lan ramah pangguna.
Akeh HttpException sing diwarisake Exceptions diwenehake dening paket @nestjs/common, kalebu NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, lan liya-liyane. Sampeyan malah bisa ngrancang ExceptionFilter dhewe.
6. Middleware
Fungsi sing dijaluk sadurunge panangan rute diarani middleware. Panjaluk lan nanggepi obyek, uga sabanjuré () fungsi middleware ing siklus request-respon aplikasi, diakses kanggo fungsi middleware.
Variabel sing diarani sabanjure biasane digunakake kanggo ngenali fungsi middleware sabanjure. Custom Nest middleware bisa dipun ginakaken ing cara utawa kelas nggunakake @Injectable () decorator.
7. Pengawal
Pengawal mung tanggung jawab kanggo siji perkara. Iku tanggung jawab kanggo netepke apa panjalukan bakal diproses dening controller adhedhasar kahanan tartamtu (Khusus, logika user-ditetepake).
Iku migunani kanggo otentikasi / wewenang lan minangka cara sing disaranake ing Nestjs.
Sanadyan otentikasi / ijin, lan liya-liyane, bisa ditindakake kanthi nggunakake middleware, ora ditindakake kanthi ekspres utawa server HTTP liyane amarga ora duwe konteks sing kuat lan ora duwe alesan kanggo ngerti cara sing bakal digunakake kanggo ngolah panjaluk kasebut.
Kaluwihan
- Kerangka kasebut gumantung banget marang anotasi, sing digunakake kanggo ngasilake apa wae saka titik pungkasan nganti dokumentasi Swagger. Titik pungkasan dhasar lan rapi, lan anotasi nggawe pangembangan luwih gampang ing umum.
- Gampang kanggo eksternalisasi modul tujuan umum lan nggunakake kode maneh ing pirang-pirang proyek amarga Nest.js minangka kerangka adhedhasar modul.
- Struktur folder Nest.js dipengaruhi banget dening Angular. Nalika ngrancang layanan Nest, iki ngidini downtime minimal.
- Komponen duwe direktori dhewe, kanthi root ngemot modul aplikasi lan file utama. Amarga kesederhanaan struktur kasebut, luwih akeh perhatian bisa ditrapake kanggo desain titik pungkasan lan para pelanggan tinimbang struktur aplikasi kasebut.
- Nest, kaya Angular, nawakake alat baris perintah sing apik, Nestjs/cli, sing kasedhiya liwat Node Package Manager.
cacat
- Nest duwe kaluwihan babagan panggunaan TypeScript lan integrasi sudut, nanging ora duwe dhukungan finansial saka perusahaan gedhe.
- Kekurangan dokumentasi nyebabake ancaman paling gedhe kanggo pangguna Nest. Sanajan kerangka kasebut nduweni interaksi sing apik karo kerangka kerja liyane, dokumentasi kasebut arang banget lan ora ngatasi masalah potensial.
- Nest nduweni kaluwihan babagan panggunaan TypeScript lan Angular.
kesimpulan
NestJS nyedhiyakake pangembang kanthi sikil gedhe. Kanggo miwiti pembangunan, sampeyan mung kudu nindakake nggawe app anyar lan sampeyan apik kanggo pindhah. Kerangka iki langsung menehi dorongan sing signifikan, uga mbantu sampeyan njupuk tahap tambahan kanthi nggawe arsitektur app sing cocog.
Iki nggunakake cara lan teknologi sing canggih kanggo ngasilake aplikasi sing bisa diatur lan tahan suwe. Bisa digunakake kanggo nyambung menyang GraphQL, WebSockets, lan mbangun microservices.
Ninggalake a Reply