Pada tahun 2021, JavaScript adalah bahasa pengaturcaraan yang paling banyak digunakan.
Daya tarikan teknologi ini tidak dapat dinafikan, seperti yang dilihat oleh sejumlah besar rangka kerja yang membolehkan pengaturcaraan JavaScript.
Terdapat Angular, React dan Vue pada bahagian hadapan, serta Express dan Next pada bahagian belakang, untuk menyebut beberapa.
Dengan begitu banyak rangka kerja yang menarik untuk pengaturcaraan bahagian belakang dalam JavaScript yang boleh diakses, anda mungkin terfikir mengapa saya akan mencari sesuatu yang berbeza daripada hanya menggunakan Express atau Next.
Mungkin anda perlu memulakan proses pembangunan dengan cepat dengan boilerplate yang baik, dan menambah secara manual bukan sahaja pengawal baharu tetapi juga perkhidmatan membuat anda sakit.
Atau anda ingin mencipta perisian berskala besar yang mudah diurus. Atau mungkin anda hanya ingin bekerja dengan cara yang lebih cekap dan mudah.
Tidak kira yang benar dalam keadaan anda, Nest.js boleh menjadi penyelesaian yang sempurna untuk keperluan anda.
Siaran ini akan memberikan cerapan NestJS serta pengalaman praktikal.
Apakah itu NestJS?
NestJS ialah rangka kerja Nod progresif yang sumber terbuka, boleh dikembangkan dan boleh disesuaikan .js rangka kerja untuk membina, menarik dan mencabar sistem hujung belakang. Ia kini Node dengan kadar pertumbuhan terpantas.
Rangka kerja TypeScript untuk js. NestJS digunakan untuk mencipta aplikasi yang boleh skala, boleh diuji dan disambungkan dengan longgar.
Ia menambah kebolehskalaan kepada Node. Pelayan Js telah dibawa ke tahap yang baharu. PostgreSQL, MongoDB dan MySQL adalah antara pangkalan data yang disokong.
NestJS boleh dikembangkan kerana ia boleh digunakan dengan perpustakaan lain; fleksibel kerana ekosistemnya yang boleh disesuaikan sepenuhnya. Dan progresif kerana ia menyokong ciri JavaScript dan prinsip reka bentuk.
Ia dipengaruhi terutamanya oleh Angular, React dan Vue dan disertakan dengan suntikan pergantungan terbina dalam.
Ciri-ciri
- Ia mudah untuk digunakan, dipelajari dan dikuasai.
- Ia percuma dan sumber terbuka (lesen MIT)
- Antara Muka Barisan Perintah (CLI) yang berkuasa untuk meningkatkan produktiviti dan kesederhanaan pembangunan
- Program ujian unit yang mudah digunakan
- TypeScript, bahasa yang ditaip ketat yang merupakan superset JavaScript, digunakan.
- Pembangunan dan penyelenggaraan pangkalan kod aktif.
- Sokongan untuk beratus-ratus modul khusus sarang yang memudahkan antara muka dengan teknologi dan idea popular seperti TypeORM, Mongoose, GraphQL, pengelogan, pengesahan, caching, WebSockets dan banyak lagi.
Apakah bahan binaan NestJS?
Komponen binaan aplikasi Nest disenaraikan di bawah; ada yang lain, tetapi ketiga-tiga ini adalah yang paling ketara. Mari kita lihat mereka dengan cepat.
1. Pengawal
Pengawal bertanggungjawab memproses permintaan masuk dan bertindak balas kepada pelanggan. Ia menerima permintaan HTTP tertentu, dan sistem penghalaan menentukan pengawal mana yang mendapat permintaan tersebut.
Ia kemudian merangka jawapan yang sesuai untuk dihantar. Dengan bantuan kelas dan penghias, pengumpul mudah dibina dan setiap pengawal mempunyai set laluan sendiri untuk melakukan pelbagai tugas.
2. Pembekal
Pembekal ialah idea utama dalam Nest. Kebanyakan kelas teras Nest — perkhidmatan, repositori, kilang, pembantu dan sebagainya – boleh dikendalikan sebagai penyedia.
Tanggapan asas pembekal ialah ia boleh disuntik sebagai pergantungan; ini membayangkan bahawa objek boleh membentuk pelbagai perkaitan antara satu sama lain, dan peranan "pendawaian" contoh objek boleh disalurkan terutamanya kepada sistem masa jalan Nest.
3. Modul
Modul ialah kelas dengan penghias @Module() yang menyusun komponen struktur aplikasi. Setiap aplikasi mempunyai modul akar yang digunakan untuk membina graf aplikasi, yang seterusnya menyelesaikan kebergantungan dan interaksi antara pembekal dan modul.
Penghias ini memberikan metadata kepada Nest.js untuk mengenal pasti komponen, pengawal atau sumber lain yang akan digunakan dalam kod aplikasi dan menggabungkannya menjadi satu set.
Setiap modul mempunyai koleksi keupayaan yang disambungkan dalam beberapa cara.
Bermula dengan NestJS
1. pemasangan
Mari pasang NestJS dan buat projek dengannya dengan mengikut langkah berikut:
Struktur direktori berikut akan dibuat hasil daripada ini:
2. Pengawal
Blok binaan Nest ialah pengawal. Ini ialah lokasi di mana permintaan masuk akan dikendalikan. Anda boleh menentukan laluan laluan menggunakan pengubah suai kaedah HTTP (Dapatkan, Siar, Letakkan, Padam dan sebagainya) penghias, seperti yang dilihat dalam kod di bawah.
Nestjs menggunakan pendekatan penghias dan kebanyakannya dibangunkan dalam Typescript, walaupun ia juga menyokong JavaScript. Anda juga boleh menggunakan pengesah kelas untuk mengesahkan badan permintaan.
Saya hanya akan membuat contoh pelayan Nestjs dan menambah ValidationPipe secara global. Paip hanyalah kaedah yang dilaksanakan sebelum Pengawal. Paip juga boleh digunakan pada peringkat kaedah/hujah menggunakan penghias @UsePipes.
3. Pembekal
Pembekal ialah satu lagi komponen penting Nestjs. Setakat ini, saya menyimpan data dalam pembolehubah sementara. Itulah sebabnya tugas mudah sedemikian boleh dicapai menggunakan pengendali Pengawal.
Walau bagaimanapun, untuk logik yang lebih besar dan lebih rumit, pemisahan kod dan penggunaan semula akan menjadi sukar. Pada masa inilah pembekal masuk. Anda boleh mengisytiharkan/membuat pembekal di atas kelas dengan menggunakan penghias @Injectable. Kemudian, menggunakan pembekal, anda boleh melakukan suntikan pergantungan, pengelogan dan tugasan lain.
4. Modul
Modul Nestjs bukan global; sebaliknya, mereka mempunyai kedalaman.
Walau bagaimanapun, ia boleh dikongsi dengan mana-mana modul lain juga. Walaupun ia, seperti Angular, menawarkan Modul Global, adalah lebih dinasihatkan untuk menyimpan Perkhidmatan/Pengawal dalam modul yang paling biasa digunakan dalam Nestjs.
NestCLI digunakan untuk menghasilkan modul pada kebanyakan masa dan pembekal/pengawal yang dijana dalam konteks modul tersebut ditambah secara automatik oleh CLI. Ini dikenali sebagai modul ciri.
5. Penapis Pengecualian
Penapis pengecualian ialah pengendali ralat yang digunakan apabila Pengawal melemparkan pengecualian. Ia secara automatik mengurus isu dan menyampaikan mesej ralat yang sesuai dan mesra pengguna.
Banyak Pengecualian yang diwarisi HttpException disediakan oleh pakej @nestjs/common, termasuk NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException dan banyak lagi. Anda juga boleh mereka bentuk ExceptionFilter anda sendiri.
6. Alat tengah
Fungsi yang digunakan sebelum pengendali laluan dipanggil middleware. Objek permintaan dan tindak balas, serta fungsi middleware next() dalam kitaran permintaan-tindak balas aplikasi, boleh diakses oleh fungsi middleware.
Pembolehubah yang dipanggil seterusnya biasanya digunakan untuk mengenal pasti fungsi middleware seterusnya. Perisian tengah Nest tersuai boleh dilaksanakan dalam kaedah atau kelas menggunakan penghias @Injectable().
7. Pengawal
Pengawal hanya bertanggungjawab untuk satu perkara. Adalah menjadi tanggungjawab mereka untuk menilai sama ada permintaan akan diproses atau tidak oleh pengawal berdasarkan keadaan tertentu (Secara khusus, logik yang ditentukan pengguna).
Ia berguna untuk pengesahan/keizinan dan merupakan kaedah yang disyorkan dalam Nestjs.
Walaupun pengesahan/kebenaran, dsb., boleh dilakukan menggunakan perisian tengah, ia tidak dilakukan dalam ekspres atau pelayan HTTP lain kerana mereka tidak mempunyai konteks kukuh yang berkaitan dan tidak mempunyai sebab untuk mengetahui kaedah mana yang akan digunakan untuk memproses permintaan.
kelebihan
- Rangka kerja ini sangat bergantung pada anotasi, yang digunakan untuk menghasilkan apa-apa sahaja daripada titik akhir kepada dokumentasi Swagger. Titik akhir adalah asas dan kemas, dan anotasi menjadikan pembangunan lebih mudah secara umum.
- Mudah sahaja untuk membuat luaran modul tujuan umum dan menggunakan semula kod dalam banyak projek memandangkan Nest.js ialah rangka kerja berasaskan modul.
- Struktur folder Nest.js dipengaruhi dengan ketara oleh Angular. Apabila mereka bentuk perkhidmatan Nest, ini membolehkan masa henti yang minimum.
- Komponen mempunyai direktori mereka sendiri, dengan akar mengandungi modul aplikasi dan fail utama. Kerana kesederhanaan struktur, lebih banyak perhatian boleh diberikan kepada reka bentuk titik akhir dan pelanggan mereka daripada struktur aplikasi.
- Nest, seperti Angular, menawarkan alat baris perintah yang bagus, Nestjs/cli, yang tersedia melalui Pengurus Pakej Node.
Kekurangan
- Nest mempunyai kelebihan dari segi penggunaan TypeScript dan penyepaduan Sudut, tetapi ia tidak mempunyai sokongan kewangan sebuah syarikat besar.
- Kekurangan dokumentasi menimbulkan ancaman terbesar kepada pengguna Nest. Walaupun rangka kerja tersebut mempunyai interaksi yang sangat baik dengan rangka kerja lain, dokumentasinya adalah jarang dan tidak menangani sebarang kemungkinan kesukaran.
- Nest mempunyai kelebihan dari segi penggunaan TypeScript dan Angular.
Kesimpulan
NestJS menyediakan pemaju dengan langkah besar. Untuk memulakan pembangunan, apa yang anda perlu lakukan ialah buat apl baharu dan anda boleh pergi. Rangka kerja ini memberikan rangsangan yang ketara serta-merta, sambil turut membantu anda mengambil peringkat tambahan dengan mewujudkan seni bina aplikasi yang sesuai.
Ia menggunakan kaedah dan teknologi canggih untuk menghasilkan aplikasi yang boleh diurus dan tahan lama. Ia boleh digunakan untuk menyambung ke GraphQL, WebSockets, dan membina perkhidmatan mikro.
Sila tinggalkan balasan anda