cari
Rumahhujung hadapan webtutorial jsMari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Artikel ini akan bercakap tentang cara rangka kerja nod Nest.js menyepadukan Express dengan cara yang longgar, saya harap ia akan membantu anda.

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Nodejs menyediakan modul http untuk mendengar port, memproses permintaan http dan membalas respons, yang merupakan perkara utama yang dilakukannya.

Walau bagaimanapun, api modul http terlalu primitif, dan menyusahkan untuk memproses respons permintaan secara langsung berdasarkannya, jadi kami akan merangkumnya dengan perpustakaan seperti ekspres.

Apa yang dilakukan oleh lapisan ini ialah menambahkan banyak kaedah pemprosesan permintaan dan tindak balas kepada permintaan dan tindak balas untuk memenuhi keperluan pelbagai senario, dan mengendalikan penghalaan, dan juga menyediakan rantaian panggilan perisian tengah Untuk memudahkan penggunaan semula beberapa kod, rantai panggilan middleware ini dipanggil model bawang.

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Tetapi lapisan ini tidak menyelesaikan masalah seni bina: apa yang perlu dilakukan apabila terdapat terlalu banyak modul dan bagaimana untuk menguruskannya? Bagaimana untuk membahagikan Model, Pandangan dan Pengawal? dll.

Jadi, apabila menggunakan Node.js untuk perkhidmatan back-end, kami akan memasukkan lapisan lain untuk menyelesaikan masalah seni bina Rangka kerja pada lapisan ini termasuk eggjs (semut), midwayjs (Taobao), nestjs (asing). ).

nestjs ialah salah satu yang terbaik:

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Lapisan ini Bahagian bawah lapisan adalah ekspres, koa, dll. Ia hanya menyelesaikan masalah seni bina tambahan berdasarkan rangka kerja http tersebut.

Dan nestjs melakukan satu perkara dengan baik. Ia tidak bergantung pada mana-mana platform http dan boleh ditukar secara fleksibel.

Jadi, bagaimanakah nestjs mencapai penukaran platform asas?

Fikirkan tentang bagaimana tindak balas menyebabkan vdom kepada kanvas, dom dan asli?

Tentukan antara muka bersatu, dan logik pemaparan pelbagai platform melaksanakan antara muka ini. Mod ini dipanggil mod penyesuai.

Mod penyesuai bermaksud bahawa apabila menggunakan fungsi yang dilaksanakan oleh pihak ketiga, ia tidak bergantung secara langsung padanya, tetapi mentakrifkan lapisan antara muka untuk membolehkan pihak ketiga menyesuaikan diri dengan lapisan antara muka ini . Dengan cara ini, sebarang penyelesaian yang menyesuaikan diri dengan lapisan antara muka ini boleh disepadukan dan penyelesaian boleh ditukar secara fleksibel.

Nest.js menyediakan lapisan antara muka (HttpServer) kepada platform http asas dan mentakrifkan sekumpulan kaedah:

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Oleh kerana antara muka daripada ts mesti melaksanakan semua kaedah, untuk memudahkannya, ia mewarisi kelas abstrak AbstractHttpAdapter dan mentakrifkan kaedah yang perlu dilaksanakan sebagai abstrak.

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Kemudian express atau platform lain seperti fastify hanya perlu mewarisi kelas penyesuai dan melaksanakan kaedah abstraknya untuk menyambung ke Nest.js:

Sebagai contoh , ExpressAdapter:

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

atau FastifyAdapter:

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Logik ini diletakkan dalam platform-express dan platform-fastify masing-masing Dalam pakej:

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Nest.js Baris pertama kod adalah untuk memanggil create:

Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

create akan memilih Gunakan httpAdapter untuk mencipta perkhidmatan:

1Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Lalainya ialah ekspres:

1Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Dengan cara ini, permintaan dan respons kaedah dipanggil kemudian Pada akhirnya, semuanya nyata.

Sebagai contoh, dalam pengawal, anda boleh menggunakan penghias @Request untuk menyuntik objek reqeust, dan kemudian anda boleh memanggil pelbagai kaedah reqeust.

import { Controller, Get, Request } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(@@Request() request: Request): string {
    return 'This action returns all cats';
  }
}

Jika anda ingin memanggil beberapa kaedah khusus platform di luar antara muka, Nest.js turut menyokongnya, kemudian gunakan @Req sebaliknya untuk menyuntik:

import { Controller, Get, Req } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(@@Req() request: Request): string {
    return 'This action returns all cats';
  }
}

Suntikan seperti ini Ia adalah objek permintaan asli bagi platform tertentu seperti ekspres, dan semua kaedahnya boleh digunakan secara langsung.

Selain itu, jika anda benar-benar mahu menggunakan API khusus platform Express, anda boleh menentukan parameter jenis yang sepadan apabila NestFactory.create, supaya anda boleh melakukan pembayang dan semakan jenis yang sepadan:

1Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Walau bagaimanapun, ini akan digabungkan dengan platform tertentu Melainkan anda pasti bahawa anda tidak akan menukar platform, adalah tidak disyorkan untuk melakukan ini.

Platform http melakukan ini, dan begitu juga, platform websocket melakukan perkara yang sama:

mentakrifkan antara muka bersatu yang menghubungkan socketio dan websocket masing-masing melalui penyesuai, yang boleh ditukar secara fleksibel:

1Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Ilustrasi Nest.js pemprosesan http dan platform soket web:

1Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!

Ringkasan

Node.js menyediakan modul http untuk memantau port dan memproses respons permintaan, tetapi APInya terlalu primitif, jadi kami akan memasukkan satu lapisan dan menyediakan lebih banyak permintaan dan tindak balas API pada lapisan ekspres, tetapi Lapisan ini tidak menyelesaikan masalah seni bina , IOC dan seni bina lain, lapisan lain perlu disertakan, menggunakan rangka kerja bahagian belakang peringkat lebih tinggi seperti Egg.js, Midway.js dan Nest.js, antaranya Nest.js adalah yang terbaik.

Nest.js telah membuat reka bentuk khas untuk disepadukan dengan platform http asas Ia menggunakan mod penyesuai untuk menyediakan lapisan antara muka untuk platform asas untuk disesuaikan, supaya platform http yang berbeza boleh ditukar secara fleksibel. .

Tetapi ia juga menyokong penggunaan API khusus platform Contohnya, anda boleh menggunakan @Req untuk menyuntik objek permintaan asas dalam pengawal, dan anda juga boleh memasukkan parameter jenis platform yang sepadan apabila. mencipta bekas.

Nest.js menggunakan Express secara lalai, tetapi tidak betul sepenuhnya untuk mengatakan bahawa Express digunakan, kerana anda boleh bertukar kepada orang lain secara fleksibel. Inilah keindahan corak penyesuai.

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara rangka kerja nod Nest.js menyepadukan Express dengan gandingan longgar!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:掘金社区. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
node、nvm与npm有什么区别node、nvm与npm有什么区别Jul 04, 2022 pm 04:24 PM

node、nvm与npm的区别:1、nodejs是项目开发时所需要的代码库,nvm是nodejs版本管理工具,npm是nodejs包管理工具;2、nodejs能够使得javascript能够脱离浏览器运行,nvm能够管理nodejs和npm的版本,npm能够管理nodejs的第三方插件。

Vercel是什么?怎么部署Node服务?Vercel是什么?怎么部署Node服务?May 07, 2022 pm 09:34 PM

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

node爬取数据实例:聊聊怎么抓取小说章节node爬取数据实例:聊聊怎么抓取小说章节May 02, 2022 am 10:00 AM

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

node导出模块有哪两种方式node导出模块有哪两种方式Apr 22, 2022 pm 02:57 PM

node导出模块的两种方式:1、利用exports,该方法可以通过添加属性的方式导出,并且可以导出多个成员;2、利用“module.exports”,该方法可以直接通过为“module.exports”赋值的方式导出模块,只能导出单个成员。

安装node时会自动安装npm吗安装node时会自动安装npm吗Apr 27, 2022 pm 03:51 PM

安装node时会自动安装npm;npm是nodejs平台默认的包管理工具,新版本的nodejs已经集成了npm,所以npm会随同nodejs一起安装,安装完成后可以利用“npm -v”命令查看是否安装成功。

聊聊V8的内存管理与垃圾回收算法聊聊V8的内存管理与垃圾回收算法Apr 27, 2022 pm 08:44 PM

本篇文章带大家了解一下V8引擎的内存管理与垃圾回收算法,希望对大家有所帮助!

node中是否包含dom和bomnode中是否包含dom和bomJul 06, 2022 am 10:19 AM

node中没有包含dom和bom;bom是指浏览器对象模型,bom是指文档对象模型,而node中采用ecmascript进行编码,并且没有浏览器也没有文档,是JavaScript运行在后端的环境平台,因此node中没有包含dom和bom。

聊聊Node.js path模块中的常用工具函数聊聊Node.js path模块中的常用工具函数Jun 08, 2022 pm 05:37 PM

本篇文章带大家聊聊Node.js中的path模块,介绍一下path的常见使用场景、执行机制,以及常用工具函数,希望对大家有所帮助!

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini