Sekarang ada banyak spekulasi di dunia backend bahwa deno akan menggantikan Node.JS , setelah penelitian dan studi saya kesimpulan yang saya ambil jelas 'BUKAN UNTUK SEKARANG'.

deno jelas merupakan masa depan, namun untuk saat ini ia tidak akan mematikan Node.JS favorit semua orang.
Ini hanyalah mainan baru bagi para pengembang dan programmer, jadi bersenang-senanglah sambil bermain dengannya.

Langsung ke pengenalan tentang denoyang merupakan runtime aman untuk JavaScript dan juga TypeScript.
Ini dibuat berdasarkan Mesin V8 sama seperti Node.jsdan selain Rust, dan Tokio.
- deno adalah secara default aman karena tidak menyediakan akses untuk file, lingkungan atau jaringan kecuali diaktifkan.
- Salah satu keuntungan yang menjanjikan untuk deno adalah semua skrip dapat digabungkan menjadi satu file JS dan kompatibel dengan browser.

Membandingkan deno dengan Node.JS:

- deno tidak memiliki modul, ia tidak memerlukan penggunaan untuk npm dan package.json juga, sehingga ia membatasi penggunaan pihak ketiga dan modul, tidak, ia menggunakan modul yang direferensikan sebagai URL atau jalur file, cukup impor ini ke dalam kode Anda dan bersiap untuk menggunakannya.
- deno menyediakan perbedaan API dari Node.JS karena semua tindakan async mengembalikan sebuah janji.
- deno dihapus penggunaan memerlukan() dan hanya impor yang diizinkan.
- Deno yang menguntungkan memungkinkan Anda menggunakan top-level-await, yang dapat berjalan langsung tanpa fungsi asinkron.

Pemasangan:

deno berfungsi di macOS, Linux, dan Windows dan tidak memiliki ketergantungan eksternal.

Menggunakan Shell (macOS dan Linux):

$curl -fsSL https://deno.land/x/install/install.sh | sh

Menggunakan PowerShell (Windows):

$iwr https://deno.land/x/install/install.ps1 -useb | iex 

Anda juga dapat menggunakan Scoop dan Chocolatey untuk Windows atau bahkan Cargo yang juga dapat digunakan untuk Linux dan macOS.
Setelah terinstal, jalankan deno --version, jika mencetak versi saat ini 1.1.0 instalasi Anda berhasil.
Anda juga dapat melakukan repldengan deno seperti di Node.JS.

Untuk memulai implementasi, saya akan menggunakan oak,yang merupakan kerangka middleware untuk server http Deno, termasuk router middleware.
Kerangka kerja middleware ini terinspirasi oleh Koa dan router middleware yang terinspirasi oleh @koa/router.
Anda juga dapat menggunakan kerangka server lain untuk implementasi Anda seperti Pogo yang merupakan kerangka kerja yang mudah digunakan, aman, dan ekspresif untuk menulis server web dan aplikasi. Ini terinspirasi oleh hapi.

Anda akan mendapatkan modul pihak ketiga ini dari https://deno.land/x ,untuk mongodb saya menggunakan deno_mongoyang merupakan driver basis data MongoDB yang dikembangkan untuk deno, berdasarkan paket pustaka mongodb resmi Rust, yang hanya mencakup beberapa kueri mongodb dan tidak semuanya, ini adalah insertOne, insertMany , find, findOne, updateOne, count, updateMany, deleteOnedandeleteManybersama dengan agregat. Dengan menggunakan ini saya akan melakukan dasar Operasi CRUD di MongoDb dengan oak dan juga menyimpan data di Redis kami, untuk redis saya menggunakan deno- redis.

Saya menggunakan struktur sederhana untuk implementasi, file server, file router untuk memasukkan semua rute saya, file layanan redis yang menyiratkan port dan Host saya untuk digunakan untuk redis, file database untuk konektivitas dengan database saya (mongodb) , file konstan yang berisi pesan dan nilai konstan yang akan didefinisikan dan file pengontrol yang berisi semua logika bisnis yang akan dieksekusi.

Ini dia file server saya

Saya cukup mengimpor Aplikasi darideno oak,

kelas Aplikasi digunakan untuk membungkus fungsi serve() dari paket http.

- Kelas Aplikasi memiliki dua metode yaitu .use() dan .listen()

- Middleware kami ditambahkan dari metode .use() dan metode .listen() akan memulai server dan mulai memproses permintaan
dengan middleware terdaftar. Setiap kali middleware kita dipanggil, ia diteruskan sebagai konteks.
- context.request berisi informasi tentang permintaan dan juga context.response berisi informasi tentang respon yang dikirimkan ke klien kami.

Demikian pula impor Router dari“https://deno.land/x/oak/mod.ts'», ke dalam file router yang menghasilkan middleware yang dapat digunakan dengan Aplikasi untuk mengaktifkan perutean berdasarkan nama jalur permintaan.

Mulai server Anda menggunakan:
deno run --allow-read --allow-env --allow-write --unstable --allow-net
--allow-plugin server.ts

Karena API plugin Deno masih dalam keadaan tidak stabil, maka flag tidak stabil perlu digunakan. Bendera lainnya adalah mengizinkan baca, tulis, dan jaringan serta gunakan izinkan env jika Anda menggunakan file .env untuk kode Anda.

Sekarang setelah file server saya siap, buat saja koneksi ke MongoDb saya, impor MongoClient, buat klien dan dengan bantuan metode connectWithUri yang menggunakan url koneksi Anda, buat database Anda dan koleksi tempat Anda ingin melakukan operasi.
Anda harus menggunakan dotenv untuk implementasi Anda dan dapat menyimpan string koneksi Anda ke dalam file .env untuk alasan tertentu dan dengan mengimpor dotenv/load.ts dari deno dan menggunakan “Deno.env.get(anyVariable)” dapat menggunakan nilai variabel yang dideklarasikan ke dalam file .env Anda, di sini saya hanya menggunakan localhost saya jadi saat ini saya saya tidak mengikuti proses ini.

Sekarang impor koneksi darideno-redisdan nyatakan nama host dan port Anda untuk koneksi redis Anda.

Jika Anda belum menginstal redis atau jika Anda seorang pemula dalam menginstal redis, unduhlah redis dari redis.io dan instal menggunakan perintahsudo apt install redis-server.

datang untuk membuat rute Anda di file router, impor Router dari oak, buat router baru dan mulailah membuat rute Anda.

deno oak memberikan kebersihan kode Anda dalam membuat rute yang berbeda dari router Anda dengan kesederhanaan. Anda juga dapat menggunakan rute ke file server Anda jika Anda memiliki proyek yang sangat singkat.

Dengan rute pertama saya memasukkan pengguna ke dalam koleksi saya menggunakan permintaan dan respons konteks, saya menerima permintaan di badan dan merusak struktur badan permintaan saya

pada akhirnya setelah pertanyaan dan logika saya, saya menyimpan data saya ke database dan mengatur nilai kunci ke dalam redis dan memberikan klien saya respons yang diinginkan menggunakan konteks

Menggunakan tukang pos untuk permintaan dan respons API saya untuk melihat respons, melihat permintaan dan respons untuk titik akhir insertOne

Di sini insertOne mengembalikan “$oid”seandainya Anda familiar dengan “_id”, keduanya sama, itu hanyalah representasi, secara internal disimpan dengan cara yang sama untuk informasi lebih lanjut kunjungi: https://docs.mongodb.com/manual/reference/mongodb-exended-json/

Kode Status HTTP 201 mungkin sedikit membingungkan bagi Anda semua tetapi sebenarnya ini mewakili sumber daya baru yang sedang dibuat, semuanya terserah Anda dan pemahaman Anda, Anda masih dapat menggunakan kode status 200.

Anda juga dapat melanjutkan dengan permintaan dan tanggapan lainnya. Saya hanya membagikan lebih banyak permintaan dan tanggapan dari API saya yang lain.

dan tentu saja lanjutkan dengan validasi di setiap API berdasarkan kebutuhan Anda, seperti,

2. Dapatkan Semua Pengguna

3. Dapatkan Satu Pengguna berdasarkan idnya

Untuk pengambilan seperti ini, pilihlah data yang berasal dari redis terlebih dahulu dan jika data Anda tidak ada di redis (server flushed atau redis sedang down)
Anda hanya dapat menanyakan database Anda, Anda dapat menggunakan ini dalam kasus userList API juga, seperti di bawah ini saya melakukannya untuk satu pengambilan pengguna

4. Perbarui dokumen dari koleksi

Dalam API ini, saya sangat merindukan luwak dan terutama findOneAndUpdate() karena untuk satu pembaruan kunci saya harus menanyakan db lagi untuk nilai yang diperbarui untuk ditimpa di redis untuk kunci yang sama, saya melewatkan penggunaan posting dan pra kait yang dapat dengan mudah mengganti seluruh dokumen yang diperbarui di redis saya setelah kueri dieksekusi.

Saat Anda mencoba menjalankan kode dengan findOneAndUpdate()Anda mendapatkan kesalahan Property 'findOneAndUpdate' tidak ada pada tipe.

Karena untuk saat ini saya tidak dapat menemukan apa pun di deno untuk deklarasi skema luwak untuk koleksi kami, saya harus menanggungnya dan menggunakan cara primitif untuk menetapkan nilai kunci saya di redis.

5. Hapus satu pengguna

Cukup perbarui statusnya dan ikuti aturan backend “SOFT” hapuspengguna dan gunakan perintah del untuk menghapus kunci dari redis

Itu saja semuanya, itulah dasar-dasar untuk denodengan oak mongodb dan redis
Saya yakin Anda dapat mencoba sendiri untuk proyek dasar Anda sendiri dengan denodan nikmati deno seperti halnya Node.JS

Teruslah Belajar kawanKehidupan dan Pemrograman keduanya hanyalah tentang Pembelajaran
Teruslah berkembang. Silakan bertepuk tangan dan bagikan jika Anda menyukai artikel ini. Terima kasih telah membaca. Jelajahi https://deno.land/ untuk informasi lebih lanjut. Terima kasih