การเปลี่ยนแปลงด้านสิ่งแวดล้อมได้นำมาซึ่งการก้าวกระโดดทางเทคโนโลยีที่ยอดเยี่ยมด้วยโอกาสและความท้าทายที่เกิดขึ้นในเวลาเดียวกัน เพราะฉันไม่ได้เรียนรู้ JS ฉันต้องขับเป็ดเพื่อวางไว้บนชั้นวางและเรียนรู้ด้วยกัน ()
1. อ่านหนังสือก่อน
ฉันอ่าน "node.js ในเชิงลึกและเข้าใจง่าย" ในตอนแรกและฉันรู้ว่าหนังสือเล่มนี้ต้องการรากฐานบางอย่างหลังจากอ่าน ฉันค้นหา "บทนำสู่โหนด" 41 หน้าออนไลน์และเรียนรู้ที่จะสร้างเว็บแอปพลิเคชันด้วยตัวเอง และหลังจากสดชื่นความรู้สึกของความสำเร็จฉันก็อ่าน "The Great Node.js" ตอนนี้ฉันจะอ่านหนังสืออีกครั้งหลังจากอ่าน "เชิงลึกและเข้าใจง่าย Node.js"
2. สร้างสภาพแวดล้อมเพื่อเรียกใช้กิจวัตรบน GIT (รายงานข้อผิดพลาด 3 ครั้ง)
หลังจากดาวน์โหลด MSI บนเว็บไซต์อย่างเป็นทางการให้ไปต่อไปตลอดทาง เมื่อเข้าสู่การติดตั้งคำสั่ง NPM ข้อผิดพลาด "NPM ERR! ไม่พบ: GIT" จะถูกรายงาน เหตุผลก็คือคอมพิวเตอร์เครื่องใหม่ไม่ได้ติดตาม Git
เมื่อติดตั้งแพ็คเกจการพึ่งพาภายนอกจะมีการรายงานข้อผิดพลาด "GYP ERR! การกำหนดค่าข้อผิดพลาด" และเหตุผลก็คือสภาพแวดล้อม Python ไม่ได้ ยิ่งไปกว่านั้นแพ็คเกจการพึ่งพานี้สามารถติดตั้งได้ในรุ่นล่างเท่านั้น ข้อผิดพลาดสุดท้ายคือ "MSBUILD: ข้อผิดพลาด MSB3428: Visual C ++ Component" VCBUILD.exe "ล้มเหลวในการโหลดข้อผิดพลาดยังคงรายงานหลังจากติดตั้ง. NET Framework 2.0 SDK และ MVS2005
3. เว็บแอปพลิเคชันแรก
หลังจากเรียกใช้ "Hello World" เริ่มเขียนเว็บแอปพลิเคชันที่ขึ้นอยู่กับโหนดอย่างสมบูรณ์ ก่อนอื่นคุณต้องเริ่มโมดูลเซิร์ฟเวอร์ วัตถุที่ส่งคืนโดยฟังก์ชั่น CreateServer ในโมดูล HTTP มีพอร์ตการฟัง (พอร์ต [พอร์ต]) พารามิเตอร์ของฟังก์ชั่นนี้แปลกและเป็นคำจำกัดความของฟังก์ชั่น ใน JavaScript ฟังก์ชั่นสามารถรับพารามิเตอร์เป็นฟังก์ชั่นอื่นและฟังก์ชันพารามิเตอร์เรียกว่าฟังก์ชันที่ไม่ระบุชื่อ เหตุผลในการใช้วิธีนี้คือโหนดใช้การโทรกลับที่ขับเคลื่อนด้วยเหตุการณ์ เมื่อเซิร์ฟเวอร์ได้รับคำขอในกระบวนการเดียวจะเรียกใช้ฟังก์ชันนี้เพื่อประมวลผลคำขอ เมื่อเหตุการณ์ที่เกี่ยวข้องเกิดขึ้นฟังก์ชั่น CreateServer เรียกฟังก์ชันนี้ไปมา
หลังจากได้รับคำขอ HTTP เราต้องดำเนินการตามคำขอ ก่อนอื่นเราเสนอ URL ที่แตกต่างกันอย่างเป็นนามธรรมและรับและโพสต์พารามิเตอร์ไปยังคำขอ ที่นี่เราใช้ URL สองโมดูลภายใน (URL แยกวิเคราะห์) และสตริงการสืบค้น (สตริงการประมวลผลแบบสอบถาม) และเพิ่มโมดูลเราเตอร์ผ่านการฉีดพึ่งพา ถัดไปโมดูลที่จัดการคำขอจะต้องเสร็จสิ้นก่อนที่การกำหนดเส้นทางจะดีขึ้น คำขอทั้งหมดจะถูกส่งผ่านระหว่างโมดูลเป็นครั้งแรกผ่านที่จับและตัวจัดการสามารถตอบกลับได้ โดยทั่วไปแล้วให้ตัวจัดการคำขอส่งคืนโดยตรง (return ()) ข้อมูลที่พวกเขาต้องการแสดงต่อผู้ใช้ผ่านฟังก์ชั่น onrequest อย่างไรก็ตามอาจใช้เวลานานมากเมื่อทำการปิดกั้นการดำเนินงานดังนั้นเราจึงต้องใช้การดำเนินการที่ไม่ปิดกั้น ใช้การเรียกกลับโดยผ่านฟังก์ชั่นเป็นอาร์กิวเมนต์ไปยังฟังก์ชั่นอื่น ๆ ที่ใช้เวลาในการประมวลผล เมื่อเปรียบเทียบกับเนื้อหาที่ส่งไปยังเซิร์ฟเวอร์เราใช้วิธีการ "ส่งผ่าน" เซิร์ฟเวอร์ไปยังเนื้อหาในครั้งนี้ มันคือการผ่านวัตถุการตอบสนอง (รับจากฟังก์ชั่นการโทรกลับของเซิร์ฟเวอร์ onRequest ()) เป็นพารามิเตอร์ฟังก์ชันไปยังตัวจัดการผ่านการกำหนดเส้นทาง ด้วยวิธีนี้ตัวจัดการสามารถเรียกฟังก์ชั่นบนวัตถุ
ต่อไปเราจะดำเนินการขั้นตอนการประมวลผลอัปโหลดรูปภาพผ่านแบบฟอร์มและที่นี่เราใช้แพ็คเกจการพึ่งพาภายนอกที่น่ากลัวเพื่อรับรูปภาพ โมดูลนี้ใช้ในการประมวลผลแบบฟอร์มและอัปโหลดไฟล์ ใช้ครั้งแรกใช้ฟอร์ม var = new formatable.inomingForm (); เพื่อรับวัตถุแบบฟอร์ม วิธีการแยกวิเคราะห์ของวัตถุนี้สามารถแยกวิเคราะห์และประมวลผลข้อมูลแบบฟอร์ม เราเพียงแค่บันทึกไฟล์ โมดูล FS ใช้เพื่อบันทึกไฟล์ โดยการเปลี่ยนชื่อวิธีการระบุตำแหน่งที่บันทึกไว้โดยใช้วิธีการที่ซิงโครไนซ์ renamesync () พฤติกรรมการบันทึกไฟล์สามารถนำหน้าได้โดยการแสดงพฤติกรรมของภาพ
มันง่ายมากที่จะแสดงรูปภาพ คุณสามารถอ่านไฟล์ผ่านวิธี ReadFile ของ FS คุณสามารถใช้ response.write (ไฟล์ "ไบนารี") ในฟังก์ชั่นการโทรกลับเพื่อแสดงรูปภาพในเบราว์เซอร์
เพื่อสรุป: ผ่านรูทีนนี้เราได้เรียนรู้เกี่ยวกับคุณสมบัติใน node.js เช่นการเธรดเดี่ยวอะซิงโครนัสเหตุการณ์ที่ขับเคลื่อนด้วยเหตุการณ์ ฯลฯ แนวคิดนามธรรมเหล่านี้บางส่วนจะแสดงผ่านกิจวัตรประจำวัน แต่พวกเขายังคงต้องเข้าใจในเชิงลึก การเรียนรู้ผ่านกิจวัตรหมายถึงคุณต้องตรวจสอบข้อมูลเมื่อคุณไม่เข้าใจ วิธีการเรียนรู้นี้ยังเป็นวิธีการประเภทอินพุต-เอาต์พุตที่ดี