ขณะนี้มีการคาดเดามากมายในโลกของ แบ็กเอนด์ ว่า deno กำลังจะเข้ามาแทนที่ Node.JS หลังจากการค้นคว้าและการศึกษาของฉัน ข้อสรุปที่ฉันได้มาถึงคือ 'ไม่ใช่สำหรับตอนนี้' อย่างชัดเจน

deno ถือเป็นอนาคตอย่างแน่นอน แต่สำหรับตอนนี้ มันจะไม่ฆ่า Node.JS ที่ทุกคนชื่นชอบ
มันเป็นเพียงของเล่นใหม่ในเมืองสำหรับนักพัฒนาและ โปรแกรมเมอร์ ดังนั้นขอให้สนุกกับการเล่นกับมัน

ข้ามไปที่การแนะนำเกี่ยวกับ denoซึ่งเป็นรันไทม์ที่ปลอดภัยสำหรับ JavaScript และ TypeScript
มันถูกสร้างบน V8 เอ็นจิ้นเช่นเดียวกับ Node.jsและนอกเหนือจาก สนิม และ Tokio.
- deno คือ โดยค่าเริ่มต้น ปลอดภัย เนื่องจากไม่ได้ให้การเข้าถึงไฟล์ สภาพแวดล้อม หรือเครือข่าย เว้นแต่จะเปิดใช้งาน
- หนึ่งในข้อได้เปรียบที่มีแนวโน้มสำหรับ deno คือสคริปต์ทั้งหมดสามารถรวมเป็นไฟล์ JS ไฟล์เดียว และเข้ากันได้กับเบราว์เซอร์

การเปรียบเทียบ deno กับ Node.JS:

- deno ไม่มี ไม่มีโมดูล มันไม่จำเป็นต้องใช้สำหรับ npm และ package.json เช่นกัน ดังนั้นมันจึงจำกัดการใช้งานของ บุคคลที่สามและโมดูล ไม่ไม่ได้ใช้ มันใช้โมดูลที่อ้างอิงเป็น URL หรือเส้นทางของไฟล์ เพียงแค่นำเข้าสิ่งเหล่านี้ในโค้ดของคุณและเตรียมพร้อมสำหรับการใช้งาน
- deno ให้ความแตกต่าง API จาก Node.JS เนื่องจากการดำเนินการ async ทั้งหมด ส่งคืน สัญญา
- deno ลดลง การใช้ require() และ การนำเข้า เท่านั้น อนุญาต.
- หนึ่ง deno ที่ได้เปรียบช่วยให้คุณสามารถใช้ การรอคอยระดับบนสุด ซึ่งสามารถทำงานได้โดยตรงโดยไม่ต้องใช้ ฟังก์ชันอะซิงโครนัส

การติดตั้ง:

deno ทำงานบน macOS, Linux และ Windows และไม่มีการพึ่งพาภายนอก

การใช้เชลล์ (macOS และ Linux):

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

การใช้ PowerShell (Windows):

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

คุณยังสามารถใช้ Scoop และ Chocolatey สำหรับ Windows หรือแม้แต่ Cargo ซึ่งสามารถใช้งานได้กับ Linux และ macOS.
เมื่อติดตั้งแล้ว ให้รัน deno --version หากพิมพ์ออกมาเป็นเวอร์ชัน 1.1.0 แสดงว่าการติดตั้งของคุณสำเร็จแล้ว
คุณยังสามารถใช้ replกับ deno เช่นเดียวกับใน Node.JS

สำหรับการเริ่มใช้งาน ฉันจะใช้ oakซึ่งเป็น middleware framework สำหรับเซิร์ฟเวอร์ http ของ deno รวมถึง มิดเดิลแวร์ของเราเตอร์
มิดเดิลแวร์เฟรมเวิร์กนี้ได้รับแรงบันดาลใจจาก Koa และ เราเตอร์มิดเดิลแวร์ ที่ได้รับแรงบันดาลใจจาก @koa/router
คุณยังสามารถใช้เฟรมเวิร์กเซิร์ฟเวอร์อื่นสำหรับการใช้งานของคุณ เช่น Pogo ซึ่งเป็นเฟรมเวิร์กที่ใช้งานง่าย ปลอดภัย และแสดงออกอย่างชัดเจนสำหรับการเขียนเว็บเซิร์ฟเวอร์และแอปพลิเคชัน ได้รับแรงบันดาลใจจากฮาปิ

คุณจะได้รับโมดูลบุคคลที่สามเหล่านี้จาก https://deno.land/xสำหรับ mongodb ฉันใช้ deno_mongoซึ่งเป็นไดรเวอร์ฐานข้อมูล MongoDB ที่พัฒนาขึ้นสำหรับ deno โดยอิงจากแพ็คเกจไลบรารี mongodb อย่างเป็นทางการของสนิม ซึ่งมีเพียงไม่กี่คำสั่ง mongodb เพียงไม่กี่คำสั่งเท่านั้น ไม่ใช่ทั้งหมด นี่คือ insertOne, insertMany , ค้นหา, findOne, updateOne, นับ, updateMany, DeleteOneและDeleteManyพร้อมกับ รวม ด้วยการใช้สิ่งเหล่านี้ ฉันจะดำเนินการพื้นฐาน CRUDการดำเนินการบน MongoDb ด้วย oak และยังจัดเก็บข้อมูลไว้ใน Redis ของเรา สำหรับ redis ฉันใช้ deno- ทำซ้ำ

ฉันใช้โครงสร้างที่เรียบง่ายสำหรับการใช้งาน ไฟล์เซิร์ฟเวอร์ ไฟล์เราเตอร์เพื่อรวมเส้นทางทั้งหมดของฉัน ไฟล์บริการ Redis ซึ่งแสดงถึงพอร์ตและโฮสต์ของฉันที่จะใช้สำหรับ Redis ไฟล์ฐานข้อมูลสำหรับการเชื่อมต่อกับฐานข้อมูลของฉัน (mongodb) ไฟล์คงที่ที่มีข้อความและค่าคงที่ที่จะกำหนด และไฟล์คอนโทรลเลอร์ที่มีตรรกะธุรกิจทั้งหมดที่จะดำเนินการ

นี่มันอยู่ในไฟล์เซิร์ฟเวอร์ของฉัน

ฉันเพียงนำเข้าแอปพลิเคชันจากdeno oak

คลาส Application ใช้สำหรับห่อฟังก์ชัน service() จากแพ็คเกจ http

- คลาส Application มีสองวิธีคือ .use() และ .listen()

- มิดเดิลแวร์ของเราถูกเพิ่มจากวิธี .use() และวิธี .listen() จะเริ่มเซิร์ฟเวอร์และเริ่มประมวลผลคำขอ
ด้วยมิดเดิลแวร์ที่ลงทะเบียนไว้ เมื่อใดก็ตามที่มิดเดิลแวร์ของเราถูกเรียก มันจะถูกส่งผ่านเป็น บริบท.
- context.request มีข้อมูลเกี่ยวกับคำขอ และในทำนองเดียวกัน context.response มีข้อมูลเกี่ยวกับการตอบกลับที่ส่งถึงลูกค้าของเรา

ในทำนองเดียวกันนำเข้า เราเตอร์จาก“https://deno.land/x/oak/mod.ts' ลงในไฟล์เราเตอร์ที่สร้างมิดเดิลแวร์ซึ่งสามารถใช้กับแอปพลิเคชันเพื่อเปิดใช้งานการกำหนดเส้นทางตามชื่อพา ธ ของคำขอ

เริ่มต้นเซิร์ฟเวอร์ของคุณโดยใช้:
deno run --allow-read --allow-env --allow-write --unstable --allow-net
--allow-plugin server.ts

เนื่องจาก Plug-in API ของ Deno ยังอยู่ในสถานะไม่เสถียร จึงจำเป็นต้องใช้แฟล็ก ไม่เสถียร แฟล็กที่เหลือนั้นอนุญาตให้อ่าน เขียน และเชื่อมต่อเครือข่าย และใช้อนุญาต env หากคุณใช้ไฟล์ .env สำหรับโค้ดของคุณ

ตอนนี้หลังจากที่ไฟล์เซิร์ฟเวอร์ของฉันพร้อมแล้ว เพียงทำการเชื่อมต่อกับ MongoDb ของฉัน นำเข้า MongoClient สร้างไคลเอนต์ และใช้วิธี connectWithUri ซึ่งใช้ในการสร้าง URL การเชื่อมต่อของคุณ ฐานข้อมูลของคุณและคอลเลกชันที่คุณต้องการดำเนินการ
คุณต้องใช้ dotenv สำหรับการใช้งานของคุณและสามารถเก็บสตริงการเชื่อมต่อของคุณไว้ในไฟล์ .env ของคุณด้วยเหตุผลเฉพาะ และโดยการนำเข้า dotenv/load.ts จาก deno และการใช้ “Deno.env.get(anyVariable)” สามารถใช้ค่าของตัวแปรที่ประกาศลงในไฟล์ .env ของคุณได้ ที่นี่ฉันแค่ใช้ localhost ของฉัน ดังนั้นตอนนี้ฉัน ฉันไม่ได้ทำตามกระบวนการนี้

ตอนนี้นำเข้าการเชื่อมต่อจาก deno-redis และประกาศ ชื่อโฮสต์ และ พอร์ต ของคุณสำหรับ การเชื่อมต่อ redis ของคุณ

ในกรณีที่คุณไม่ได้ติดตั้ง Redis หรือหากคุณเป็นมือใหม่ในการติดตั้ง Redis ให้ดาวน์โหลดจาก redis.io และติดตั้งโดยใช้คำสั่งsudo apt install redis-server

มาถึงการสร้างเส้นทางของคุณในไฟล์เราเตอร์ นำเข้าเราเตอร์จากโอ๊ค สร้างเราเตอร์ใหม่ และเริ่มสร้างเส้นทางของคุณ

deno oak ให้ความสะอาดโค้ดของคุณในการสร้างเส้นทางที่แตกต่างจากเราเตอร์ของคุณด้วยความเรียบง่าย คุณยังสามารถใช้เส้นทางนั้นลงในไฟล์เซิร์ฟเวอร์ของคุณได้ หากคุณมีโปรเจ็กต์ที่สั้นมาก

ด้วยเส้นทางแรกสุด ฉันแทรกผู้ใช้ลงในคอลเลกชันของฉันโดยใช้คำขอบริบทและการตอบกลับ ฉันยอมรับคำขอในส่วนเนื้อหาและทำลายโครงสร้างเนื้อหาคำขอของฉัน

ในที่สุดหลังจากการสืบค้นและตรรกะของฉัน ฉันบันทึกข้อมูลของฉันลงในฐานข้อมูลและตั้งค่าคีย์ลงใน Redis และให้การตอบสนองที่ต้องการแก่ลูกค้าโดยใช้บริบท

การใช้บุรุษไปรษณีย์สำหรับคำขอและการตอบกลับของ API ของฉันเพื่อดูการตอบกลับ ดูคำขอและการตอบกลับสำหรับจุดสิ้นสุด insertOne

ที่นี่ insertOne ส่งคืน “$oid”ในกรณีที่คุณคุ้นเคยกับ “_id”พวกมันเหมือนกัน มันเป็นเพียงการนำเสนอเท่านั้น ภายในพวกมันจะถูกจัดเก็บในลักษณะเดียวกัน สำหรับข้อมูลเพิ่มเติม โปรดไปที่: https://docs.mongodb.com/manual/reference/mongodb-exted-json/

รหัสสถานะ HTTP 201 อาจทำให้ทุกคนสับสนเล็กน้อย แต่จริงๆ แล้วรหัสนี้แสดงถึงทรัพยากรใหม่ที่กำลัง สร้าง ทั้งหมดขึ้นอยู่กับคุณและความเข้าใจของคุณ คุณยังสามารถใช้รหัสสถานะ 200 ได้

ในทำนองเดียวกัน คุณสามารถดำเนินการตามคำขอและการตอบกลับอื่นๆ ได้ ฉันแค่แชร์คำขอและการตอบกลับของ API อื่นๆ ของฉันเพิ่มเติม

และแน่นอนว่าดำเนินการตรวจสอบความถูกต้องในแต่ละ API ตามความต้องการของคุณ เช่น

2. รับผู้ใช้ทั้งหมด

3. รับผู้ใช้หนึ่งรายตามรหัส

สำหรับการเรียกค้นประเภทนี้ ต้องการข้อมูลที่มาจาก Redis ในตอนแรก และหากไม่มีข้อมูลของคุณอยู่ใน Redis (เซิร์ฟเวอร์ฟลัชหรือ Redis ไม่ทำงาน)
จากนั้นคุณจะสามารถสืบค้นฐานข้อมูลของคุณเท่านั้น คุณสามารถใช้สิ่งนี้ได้ในกรณีของ userList API เช่นกัน เช่นเดียวกับด้านล่าง ฉันทำเพื่อการดึงข้อมูลผู้ใช้รายเดียว

4. อัปเดตเอกสารจากคอลเลกชัน

ใน API นี้ ฉันพลาด mongoose จริงๆ และส่วนใหญ่เป็น findOneAndUpdate() สำหรับการอัปเดตคีย์เดียวฉันต้องค้นหา db อีกครั้งเพื่อให้ค่าที่อัปเดตจะถูกเขียนทับใน redis สำหรับ ด้วยคีย์เดียวกัน ฉันพลาดการใช้ post และ pre hooks ที่สามารถแทนที่เอกสารที่อัปเดตทั้งหมดใน Redis ของฉันได้อย่างง่ายดายหลังจากดำเนินการค้นหา

เมื่อคุณพยายามเรียกใช้โค้ดของคุณด้วย findOneAndUpdate() จะทำให้คุณมีข้อผิดพลาด คุณสมบัติ 'findOneAndUpdate' ไม่มีอยู่ในประเภท

เนื่องจากตอนนี้ฉันไม่พบสิ่งใดใน deno สำหรับการประกาศสคีมาพังพอนสำหรับคอลเลกชันของเรา ฉันจึงต้องอดทนกับมันและใช้วิธีการดั้งเดิมเพื่อตั้งค่าคีย์ของฉันเป็น Redis

5. ลบผู้ใช้รายเดียว

เพียงอัปเดตสถานะและ ปฏิบัติตามกฎแบ็กเอนด์ “SOFT” ลบผู้ใช้และใช้ คำสั่ง del เพื่อลบคีย์ออกจาก redis< /แข็งแกร่ง>

นั่นคือทั้งหมด นั่นคือพื้นฐานสำหรับ denoด้วย oak mongodb และ redis
ฉันเชื่อว่าคุณสามารถลองด้วยตัวเองสำหรับโปรเจ็กต์พื้นฐานของคุณเอง ด้วย deno และเพลิดเพลินกับ deno เช่นเดียวกับ Node.JS

Keep Learning นะเพื่อน ๆชีวิตและการเขียนโปรแกรมต่างก็เป็นการเรียนรู้
เติบโตต่อไป กรุณาปรบมือและแบ่งปันหากคุณชอบบทความนี้ ขอบคุณสำหรับการอ่าน. สำรวจ https://deno.land/ เพื่อดูข้อมูลเพิ่มเติม ขอบคุณ