NestJS di Deno? – Beragampengetahuan
Ya.
Saya menulis ini karena googling tidak begitu jelas dan hampir membuat saya percaya itu tidak akan berhasil. Saya hampir yakin bahwa saya harus menggunakan kerangka gaya Deno yang meniru Nestjs (seperti Oak).
Namun, ini mudah digunakan di Deno, dan bisa dibilang lebih sederhana, karena Anda dapat memulai tanpa CLI Nest dan persyaratan build-nya. Mengingat Deno hanya bekerja dengan TypeScript, tidak ada langkah pembuatan. Anda cukup mengimpor dan menjalankan.
Mungkin pada titik tertentu dalam sejarah Deno, hal ini tidak akan berhasil, namun sejauh ini berhasil.
Contents
Pertama, apa itu Nest?
Suka banget, bagi yang belum tahu, berikut ulasan singkatnya.
NestJS adalah kerangka kerja Node.js yang progresif dan dapat diskalakan untuk membangun aplikasi sisi server yang efisien dan dapat diskalakan. Itu dibangun dan didukung penuh oleh TypeScript, tetapi juga kompatibel dengan JavaScript. NestJS memanfaatkan kekuatan JavaScript modern, dikombinasikan dengan kekuatan dan fleksibilitas TypeScript, untuk menciptakan lingkungan pengembangan yang efisien dan modular.
Fitur utama NestJS
-
Arsitektur modular: NestJS mendorong pendekatan modular untuk membangun aplikasi, memungkinkan pengembang membagi basis kode mereka menjadi beberapa modul. Hal ini mendorong pengorganisasian yang lebih baik dan penggunaan kembali kode.
-
Injeksi ketergantungan: Ini memiliki sistem injeksi ketergantungan (DI) bawaan yang kuat yang membantu mengelola siklus hidup dependensi dan hubungannya, membuatnya lebih mudah untuk menulis aplikasi yang dapat diuji, dipelihara, dan terukur.
-
Dukungan TypeScript: Meskipun dapat digunakan dengan JavaScript, NestJS dirancang dengan mempertimbangkan TypeScript, menyediakan pemeriksaan tipe lengkap dan fitur TypeScript tingkat lanjut.
-
Sintaks berbasis dekorator: Terinspirasi oleh Angular, NestJS menggunakan dekorator (seperti @Module, @Controller, @Injectable, dll.) untuk mendefinisikan dan mengatur berbagai bagian aplikasi, membuat kode lebih mudah dibaca dan deklaratif.
-
Dukungan bawaan untuk berbagai lapisan transportasi: NestJS secara asli mendukung berbagai jenis lapisan transport seperti HTTP, WebSocket, dan layanan mikro melalui modul bawaan.
-
Ekosistem yang luas: Ini menyediakan seperangkat alat dan modul yang mencakup semua aspek pengembangan aplikasi, termasuk otentikasi, integrasi database, caching, validasi, dan banyak lagi.
-
tes: NestJS mempromosikan praktik terbaik dalam pengujian dengan menyediakan utilitas dan pola untuk unit penulisan dan pengujian end-to-end, memastikan aplikasi Anda dapat diandalkan dan dipelihara.
Jalankan aplikasi Nest mandiri di Deno
Inisialisasi proyek sampel
- Buat direktori baru
mkdir nest-deno - cd untuk masuk ke direktori
cd nest-deno - Inisialisasi proyek deno
deno init
Tambahkan ketergantungan Core Nest
deno add npm:@nestjs/core Perintah deno add ditambahkan ke peta impor
deno.json. Ini memungkinkan kita mengimpor seperti biasa tanpa harus menambahkan awalan npm: dalam impor kita.
import { NestFactory } from '@nestjs/core'; Dan
import { NestFactory } from 'npm:@nestjs/core';
Tambahkan kode contoh ke main.ts
import { NestFactory } from '@nestjs/core';
class AppModule {}
const app = await NestFactory.createApplicationContext(AppModule);
Jalankan aplikasi menggunakan Deno
Deno init membuat tugas di deno.json File memungkinkan kita menjalankan aplikasi dan mengamati perubahan. Jalankan aplikasi deno task dev.
Untuk menghindari keharusan setuju Deno requests x accesss petunjuk. memperbarui
deno.json file yang akan disertakan --allow-read Dan --allow-env spanduk. Seperti inilah penampilanku.
{
"tasks": {
"dev": "deno run --watch --allow-read --allow-env main.ts"
},
"imports": {
"@nestjs/common": "npm:@nestjs/common@^10.3.9",
"@nestjs/core": "npm:@nestjs/core@^10.3.9"
}
}
Uji apakah fungsi DI Nest efektif
- berlari
deno add npm:@nestjs/commonplus@nestjs/commonuntuk mengimpor peta. - Mari buat layanan dan manfaatkan injeksi ketergantungan. memperbarui
main.tsSebagai berikut:
import { NestFactory } from '@nestjs/core';
import { Module } from '@nestjs/common';
class HelloService {
hello() {
console.log('Hello World!');
}
}
@Module({ providers: [HelloService] })
class AppModule {}
const app = await NestFactory.createApplicationContext(AppModule);
const helloService = app.get(HelloService);
helloService.hello(); // this outputs Hello World!
kesuksesan! Jadi saya yakin ini menegaskan bahwa Anda secara teknis dapat menggunakan Nest dengan Deno :).
Anda mungkin memperhatikan bahwa IDE Anda mengeluh
ModulePenggunaan dekorator. Hal ini memerlukan beberapa fitur skrip yang masih bersifat eksperimental. Kita dapat mengaktifkannya dengan menambahkan beberapa pengaturan
deno.json.
Tambahkan eksperimentalDecorators dan emitDecoratorMetadata ke deno.json
{
...
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
Coba jalankan aplikasi server Nest di Deno
Kami telah menggunakannya sebelumnya NestFactory.createApplicationContext Buat aplikasi Nest tanpa mendengarkan permintaan HTTP. Mari kita coba membuat aplikasi server Nest dan mendengarkan permintaan HTTP.
Mari membuat instance aplikasi Nest (server http)
- memperbarui
NestFactory.createApplicationContexttibaNestFactory.create. Ini akan membuat aplikasi server Nest. - Anda akan melihat kesalahan ini
No driver (HTTP) has been selected. In order to take advantage of the default driver, please, ensure to install the "@nestjs/platform-express" package ($ npm install @nestjs/platform-express) - berlari
deno add npm:@nestjs/platform-expressTambahkan paket ke peta impor. - memperbarui
main.tsSebagai berikut:
import { NestFactory } from '@nestjs/core';
import { Module } from '@nestjs/common';
import '@nestjs/platform-express';
class HelloService {
hello() {
console.log('Hello World!');
}
}
@Module({ providers: [HelloService] })
class AppModule {}
const app = await NestFactory.create(AppModule);
app.listen(3000);
Anda sekarang dapat memverifikasi bahwa server sedang berjalan dengan mengunjungi
Meskipun Anda melihat kesalahan 404, ini mengonfirmasi bahwa server sedang berjalan.
Selain itu, perbarui tugas deno deno.json termasuk --allow-net Tandai dan hindari perintah pemberian akses.
{
"tasks": {
"dev": "deno run --watch --allow-read --allow-env --allow-net main.ts"
},
...
}
Mari kita ekspos layanan Hello kita melalui titik akhir HTTP
- Buat pengontrol dan masukkan HelloService ke dalamnya.
- Daftarkan pengontrol di AppModule
class HelloController {
constructor(private helloService: HelloService) {}
@Get()
hello() {
this.helloService.hello();
return 'Hello World!';
}
}
@Module({
providers: [HelloService],
controllers: [HelloController],
})
menyelesaikan main.ts Filenya akan terlihat seperti ini:
import { NestFactory } from '@nestjs/core';
import { Get, Module } from '@nestjs/common';
import '@nestjs/platform-express';
class HelloService {
hello() {
return 'Hello World!'; // updated to return instead of console.log
}
}
class HelloController {
constructor(private helloService: HelloService) {}
@Get("https://uptownhr.com/")
hello() {
return this.helloService.hello();
}
}
@Module({ providers: [HelloService] })
class AppModule {}
const app = await NestFactory.create(AppModule);
app.listen(3000);
Sekarang verifikasi bahwa titik akhir baru berfungsi dengan baik dengan mengakses . Anda akan melihat pesan ini Hello World! ditampilkan di halaman.
rencana pengembangan website
metode pengembangan website
jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website
#NestJS #Deno