คำนำ
หลังจากบทความก่อนหน้านี้ "การอภิปรายสั้น ๆ เกี่ยวกับส่วนประกอบของ index.js ไฟล์หลักของแอปพลิเคชัน nodejs" ในที่สุดฉันก็ต้องรู้ใบหน้าของโหนดสาวแล้วดูเหมือนว่าจะอยู่ใน <( ̄ ̄)> Yoxi ~ คราวนี้ฉันปล่อยให้เบ็นเดินไปรอบ ๆ ร่างกายของเธอมันดีที่จะคิดเกี่ยวกับมัน อืมจบที่นี่
ข้อความ
บทความนี้ส่วนใหญ่ใช้ส่วนประกอบเพื่อเรียนรู้เกี่ยวกับ index.js ไฟล์หลัก ... ผิวเรียบแค่ไหน ( ̄ ̄) ~
เนื่องจากฉันได้กล่าวถึงส่วนประกอบของ index.js มาก่อนคราวนี้ฉันจะพูดถึงเรื่องนี้ทีละคน ถูกต้อง มือหล่อของฉันปล่อยผิวทุกนิ้วได้อย่างไร?
1. แนะนำโมดูลการพึ่งพา
ดี ... มันเป็นแบบนี้:
var express = ต้องการ ('express'); var path = ต้องการ ('path'); var favicon = ต้องการ ('serves-favicon'); var logger = ต้องการ ('morgan'); var cookieparser = ต้องการ ('cookie-parser'); var bodyparser = ต้องการที่จริงแล้วการใช้โมดูลนั้นเป็นตัวอักษร
ในคำพูดของวิศวกรส่วนหน้ารหัส $ ("#id") attr ("คลาส", "ใช้งาน") ไม่สามารถหมุนได้หากไม่มี jQuery
ในคำพูดของสัตว์คุณไม่สามารถอยู่รอดได้หากปราศจากอาหาร
ในคำพูดของบทความนี้คุณไม่สามารถอยู่รอดได้หากไม่มีผู้หญิง
~ เพื่อสรุปการพึ่งพาคือการเตรียมตัวสำหรับสิ่งที่คุณต้องทำต่อไป ดังนั้น "พินอิน" ข้างต้นมีบทบาทนี้ ...
2. ตั้งค่าการกำหนดค่าที่เกี่ยวข้อง
ส่งรหัสที่เกี่ยวข้องของกลุ่มนี้:
// ดูการตั้งค่าเครื่องยนต์ app.set ('views', path.join (__ dirname, 'views')); app.set ('View Engine', 'Jade');อืม ... เพียงสองบรรทัดของรหัสหน้าอกของฉันมีขนาดค่อนข้างเล็ก ( ̄ ̄) หลังจากทั้งหมด, loli, hahahaha
รหัสสองบรรทัดข้างต้นคือการตั้งค่าไดเรกทอรีความพยายามและตั้งค่าหยกเป็นเอ็นจิ้นพยายาม จำนวนการตั้งค่าขึ้นอยู่กับโมดูลที่คุณต้องการใช้ โมดูลบางอย่างยังมีการตั้งค่าเริ่มต้น แต่เพื่อความสะดวกในการเขียนด้วยตัวเองพวกเขาจะตั้งค่าตามที่คุณต้องการ
3. มิดเดิลแวร์
// แอปมิดเดิลแวร์ใช้ (favicon (path.join (__ dirname, 'สาธารณะ', 'favicon.ico')))) app.use (logger ('dev')); app.use (bodyparser.json ()); app.use (bodyparser.urlencoded ( })); app.use (cookieparser ()); app.use (express.static (path.join (__ dirname, 'สาธารณะ')));มิดเดิลแวร์พูดอย่างเคร่งครัดทุกบรรทัดใน index.js เป็นมิดเดิลแวร์ ฉันเดาว่าพี่น้องหลายคนรู้คำว่ามิดเดิลแวร์ แต่พวกเขาก็ยังไม่เข้าใจว่ามันหมายถึงอะไร สิ่งที่ส่วนใหญ่ทำ
ดังนั้นโดยส่วนตัวแล้วฉันเริ่มวาดภาพเดียวในจักรวาล:
ฉันเชื่อว่าคนฉลาดสามารถเข้าใจได้ในครั้งเดียว ท้ายที่สุดมันอาจมีค่า 50 เซ็นต์เมื่อคุณขายมัน
การพูดอย่างจริงจัง: ลูกศรขนาดใหญ่ทางด้านซ้ายหมายถึงคำสั่งการดำเนินการรหัส ทุกคนรู้ว่า JS ถูกดำเนินการจากบนลงล่าง เพื่อประโยชน์ในการอธิบายมิดเดิลแวร์ลูกศรขนาดใหญ่ถือเป็นน้ำไหล
ในขณะที่น้ำไหลลงมาสิ่งที่คล้ายกับตัวกรองที่ติดอยู่ตรงกลาง เบ็นคิดว่าเยื่อพรหมจารีเหมือนกันหรือไม่ (อาใจของฉันไม่ถูกต้องอีกครั้ง)
ตัวกรองสีดำเป็นรหัสด้านบน ฟังก์ชั่นของมิดเดิลแวร์คือตำรวจคนเฝ้าประตูหรือไกด์นำเที่ยวก่อนระหว่างและหลังการประมวลผลหลัก ตัวอย่างเช่นการใช้มิดเดิลแวร์ BodyParser ฟังก์ชั่นของมันคือการแยกวิเคราะห์การวิเคราะห์ข้อมูลร่างกายของคำขอ HTTP ซึ่งสะดวกสำหรับการใช้งานในการกำหนดเส้นทาง เช่นเดียวกับ Cookie-Parser
ในส่วนตรงกลางของตัวกรองทั้งสองในรูปโดยทั่วไปเป็นเส้นทางและรับผิดชอบในการส่งคืนหน้าเว็บที่ลูกค้าต้องการ
ในเวลานี้เขาถามด้วยตาที่คมชัดทำไมมิดเดิลแวร์ถึงต่ำกว่าสีแดง? แล้วทำไมฉันถึงวางมันไว้ด้านหลังเส้นทางเพื่อดำเนินการ?
คำถามที่ดี! ฉันกำลังจะพูดมัน เพื่อนที่คุ้นเคยกับการพัฒนาโหนดรู้ว่ามิดเดิลแวร์ส่วนใหญ่มักจะเขียนก่อนการกำหนดเส้นทาง แต่บางครั้งข้อผิดพลาดที่ไม่แน่นอนบางอย่างไม่สามารถหลีกเลี่ยงได้เช่นฉันควรทำอย่างไรหากหน้าผู้ใช้ไม่ได้เข้าชม? ฉันควรทำอย่างไรถ้าเวอร์ชันการพัฒนาผิดหรือเวอร์ชันอย่างเป็นทางการผิด? ในเวลานี้มันเป็นมิดเดิลแวร์ "สีแดง" ที่จะปรากฏขึ้น ใช่มันเป็นส่วนใหญ่ที่รับผิดชอบผลหลังและโดยทั่วไปจะใช้ในการจัดการกับข้อผิดพลาดที่เป็นไปได้
4. การกำหนดเส้นทาง
// เส้นทางแอป. ใช้ ('/', เส้นทาง); app.use ('/ผู้ใช้', ผู้ใช้);เราเตอร์เป็นคนดี ลูกค้าต้องการส่งคำขอเท่านั้นและเราเตอร์จะพยายามอย่างเต็มที่เพื่อช่วยคุณแก้ไขคำขอตาม URL คำขอ มันสามารถประมวลผลข้อมูลในรูปแบบที่แตกต่างกัน (รับโพสต์ใส่เดล ... ) หรือกลับไปที่หน้าคุณต้องการ อย่างไรก็ตามมันเป็นเงินที่ดีที่สามารถพยายามกลับไปที่คำถามที่ดีที่สุดของคุณ ~ ในความเป็นจริงการกำหนดเส้นทางเป็นมิดเดิลแวร์ แต่ควรจะดีกว่าในฐานะองค์ประกอบอิสระ
5. เปิดบริการ
// เริ่มบริการ http.createserver (แอพ) .Listen (app.get ('พอร์ต'), ฟังก์ชัน () {console.log ('บริการเริ่มสำเร็จพอร์ตคือ:'+app.get ('พอร์ต'));});อ่าฮ่าฮ่าฮ่าฮ่าในที่สุดฉันก็ถึงจุดสุดยอด, โหนดสาวเกือบจะถึงแล้ว <( ̄ ̄)>>>
หน้าผาก. - - ดูเหมือนจะไม่มีอะไรจะพูดเพียงเพื่อเปิดใช้งานบริการ - - - - - ก่อนที่จะเริ่มบริการคุณต้องสร้างบริการผ่าน http.createserver () จากนั้นเรียกใช้เมธอดฟัง () เพื่อเปิดใช้งาน ด้วยวิธีนี้แอปพลิเคชันทั้งหมดจะเปิด ~~~ ลูกศรขนาดใหญ่ในภาพมหัศจรรย์นี้สามารถเจาะได้อย่างราบรื่น - ไป... ไป. - ตอนนี้.