หากคุณเคยได้ยินเกี่ยวกับ Node.js มาก่อนคุณอาจรู้ว่ามันเป็นเฟรมเวิร์กที่โดดเด่นและทรงพลังที่สุดของ JavaScript นับตั้งแต่เปิดตัวก็ยังคงครองตลาดไอทีอย่างต่อเนื่อง แม้จะมีการเปิดตัวใหม่และมีชีวิตชีวา ชอบ , , Meteor ฯลฯ ความนิยมของ Node.js ไม่เคยหยุดนิ่ง สงสัยว่าทำไม? ด้วยความช่วยเหลือของบทช่วยสอน Node.js นี้ฉันจะให้ข้อมูลเชิงลึกที่สมบูรณ์แก่คุณ เตรียมตัวตกหลุมรัก Node.js ได้เลย
ในบทช่วยสอน Node.js นี้ฉันจะพูดถึงหัวข้อด้านล่าง:
- Node.js คืออะไร?
- NPM (Node Package Manager)
- โมดูล Node.js
- ไฟล์ JSON
- พื้นฐาน Node.js
- ระบบไฟล์
- เหตุการณ์
- โมดูล HTTP
- Express.js
- การสอน Node.js ทีละขั้นตอนการพัฒนาแอปพลิเคชันด้วย Express.js
Node.js คืออะไร?
Node.js เป็นเฟรมเวิร์กที่มีประสิทธิภาพที่พัฒนาบนไฟล์ เครื่องยนต์ JavaScript V8 ของ Chrome ที่รวบรวม JavaScript ไว้ในรหัสเครื่องดั้งเดิมโดยตรง เป็นเฟรมเวิร์กที่มีน้ำหนักเบาที่ใช้สำหรับการสร้างแอปพลิเคชันเว็บฝั่งเซิร์ฟเวอร์และขยาย JavaScript API เพื่อนำเสนอฟังก์ชันฝั่งเซิร์ฟเวอร์ตามปกติ โดยทั่วไปจะใช้สำหรับการพัฒนาแอปพลิเคชันขนาดใหญ่โดยเฉพาะอย่างยิ่งสำหรับไซต์สตรีมมิ่งวิดีโอแอปพลิเคชันหน้าเดียวและเว็บแอปพลิเคชันอื่น ๆ โหนด js ทำให้ การใช้โมเดล I / O ที่ขับเคลื่อนด้วยเหตุการณ์และไม่ปิดกั้นซึ่งทำให้เป็นตัวเลือกที่เหมาะสมสำหรับแอปพลิเคชันแบบเรียลไทม์ที่เน้นข้อมูลเป็นจำนวนมาก
เช่นเดียวกับภาษาโปรแกรมอื่น ๆ node.js ใช้ประโยชน์จากแพ็คเกจและโมดูล นี่คือไลบรารีที่มีฟังก์ชันต่างๆและนำเข้าจาก npm (node package manager) เข้าสู่โค้ดของเราและใช้ในโปรแกรม คุณสมบัติหลักบางประการที่กำหนด Node.js มีดังต่อไปนี้:
คุณสมบัติของ Node.js
- โอเพ่นซอร์ส
Node.js คือใบอนุญาต MIT ของเฟรมเวิร์กโอเพนซอร์สที่ได้รับการสนับสนุนจากชุมชนขนาดใหญ่ ชุมชนมีการใช้งานค่อนข้างมากมีส่วนช่วยเพิ่มความสามารถใหม่ ๆ ให้กับแอปพลิเคชัน Node.js - ง่ายและรวดเร็ว
เนื่องจาก Node.js สร้างขึ้นบน V8 JavaScript Engine ของ Google Chrome ไลบรารีจึงสามารถเรียกใช้โค้ดได้อย่างรวดเร็ว - อะซิงโครนัส
ไลบรารีทั้งหมดของ Node.js เป็นแบบอะซิงโครนัสซึ่งหมายความว่าเซิร์ฟเวอร์ที่ใช้ Node.js จะไม่รอให้ API ส่งการตอบกลับและไปยัง API ถัดไป - ความสามารถในการปรับขนาดได้สูง
เนื่องจากกลไกของเหตุการณ์ Node.js จึงปรับขนาดได้สูงและช่วยเซิร์ฟเวอร์ในการตอบสนองที่ไม่ปิดกั้น - เธรดเดียว
ด้วยความช่วยเหลือของการวนซ้ำเหตุการณ์ Node.js สามารถทำตามแบบจำลองเธรดเดียว ซึ่งช่วยให้โปรแกรมเดียวสามารถจัดการคำขอหลายรายการได้ - ไม่มีการบัฟเฟอร์
ฟังก์ชันหลักอย่างหนึ่งของแอปพลิเคชัน Node.js คือไม่เคยบัฟเฟอร์ข้อมูลใด ๆ - ข้ามแพลตฟอร์ม
Node.js สามารถสร้างและปรับใช้บนแพลตฟอร์มต่างๆเช่น Windows, MAC และ Linux ได้อย่างง่ายดาย
ตอนนี้เรามาดูกันดีกว่าและดูวิธีปรับใช้โค้ดจริงบนเบราว์เซอร์ แต่ก่อนหน้านั้นคุณต้องดาวน์โหลดและติดตั้งในระบบของคุณ คุณสามารถอ้างอิงบทความอื่น ๆ ของฉันเพื่อรับทราบข้อมูลทั้งหมด กระบวนการติดตั้ง Node.js .
ตอนนี้เรามาดูบทช่วยสอน Node.js กันต่อไปซึ่งผมจะพูดถึงองค์ประกอบที่สำคัญที่สุดของ Node.js นั่นคือ npm
NPM (Node Package Manager)
NPM ย่อมาจาก Node Package Manager ซึ่งตามชื่อที่แนะนำคือตัวจัดการแพ็คเกจสำหรับแพ็คเกจ / โมดูล Node.js จาก Node เวอร์ชัน 0.6.0 เป็นต้นไป npm ถูกเพิ่มเป็นค่าเริ่มต้นในการติดตั้งโหนด ช่วยให้คุณประหยัดจากความยุ่งยากในการติดตั้ง npm อย่างชัดเจน
โดยทั่วไป NPM ช่วยได้สองวิธี:
เปลี่ยนสตริงเป็นอาร์เรย์ php
- จัดหาและโฮสต์ที่เก็บออนไลน์สำหรับแพ็คเกจ / โมดูล node.js ซึ่งสามารถดาวน์โหลดและใช้ในโครงการของเราได้อย่างง่ายดาย คุณสามารถค้นหาได้ที่นี่: npmjs.com
- จัดเตรียมยูทิลิตี้บรรทัดคำสั่งเพื่อติดตั้งแพ็กเกจ Node.js ต่างๆจัดการเวอร์ชัน Node.js และการอ้างอิงของแพ็กเกจ
แต่ตอนนี้คุณต้องสงสัยว่าโมดูลเหล่านี้คืออะไรและจะช่วยเราในการสร้างแอปพลิเคชัน Node.js ได้อย่างไร ในส่วนถัดไปของบทช่วยสอน Node.js นี้ฉันจะให้ข้อมูลเชิงลึกที่สมบูรณ์เกี่ยวกับโมดูล Node.js
โมดูล Node.js
โมดูลใน Node.js แสดงถึงฟังก์ชันต่างๆที่รวมอยู่ในไฟล์ JS เดียวหรือหลายไฟล์ โมดูลเหล่านี้มีบริบทที่ไม่เหมือนใครดังนั้นจึงไม่รบกวนหรือก่อให้เกิดมลพิษต่อขอบเขตของโมดูลอื่น ๆ
โมดูลเหล่านี้ช่วยให้สามารถใช้โค้ดซ้ำได้และเพิ่มความสะดวกในการใช้งาน โดยทั่วไป Node.js มีโมดูลสามประเภท:
- โมดูลหลัก
- โมดูลท้องถิ่น
- โมดูลของบุคคลที่สาม
โมดูลหลัก
เนื่องจาก Node.js เป็นไฟล์ น้ำหนักเบา เฟรมเวิร์กโมดูลหลักรวมฟังก์ชันขั้นต่ำที่แน่นอน โดยทั่วไปโมดูลเหล่านี้จะโหลดเมื่อกระบวนการ Node เริ่มการทำงาน สิ่งที่คุณต้องทำคือนำเข้าโมดูลหลักเหล่านี้เพื่อใช้ในโค้ดของคุณ
ด้านล่างนี้ฉันได้ระบุโมดูลหลักที่สำคัญบางส่วนไว้
โมดูลหลัก | คำอธิบาย |
http | มีคลาสวิธีการและเหตุการณ์ที่จำเป็นในการสร้างเซิร์ฟเวอร์ HTTP ของ Node.js |
url | มีเมธอดสำหรับการแก้ปัญหา URL และการแยกวิเคราะห์ในโหนด |
querystring | มีวิธีการจัดการกับสตริงการสืบค้นของโหนด |
เส้นทาง | มีวิธีจัดการกับพา ธ ไฟล์ |
fs | มีคลาสวิธีการและเหตุการณ์ที่จะทำงานกับไฟล์ I / O |
มีประโยชน์ | ประกอบด้วยฟังก์ชันยูทิลิตี้ที่สามารถเป็นประโยชน์สำหรับโปรแกรมเมอร์ |
คุณสามารถโหลดโมดูลหลักของคุณโดยใช้รหัสด้านล่าง:
โมดูล var = ต้องการ ('module_name')
มาดูกันว่า 'โมดูลภายใน' คืออะไร
โมดูลท้องถิ่น
โมดูลโลคัลของ Node.js เป็นโมดูลแบบกำหนดเองที่สร้างขึ้นโดยผู้ใช้ / ผู้พัฒนาในแอปพลิเคชัน โมดูลเหล่านี้สามารถรวมฟังก์ชันต่างๆที่รวมอยู่ในไฟล์และโฟลเดอร์ที่แตกต่างกันซึ่งสามารถแจกจ่ายได้อย่างง่ายดายในชุมชน Node.js โดยใช้ NPM
โมดูลเหล่านี้โหลดในลักษณะเดียวกับโมดูลหลัก ให้คุณดูวิธีการทำโดยใช้ตัวอย่างพื้นฐาน
สร้างไฟล์ module.js แบบกำหนดเอง / โลคัลของคุณ
var detail = {name: function (name) {console.log ('Name:' + name)}, domain: function (domain) {console.log ('Domain:' + domain)}} module.exports = detail
รวมไฟล์โมดูลของคุณไว้ในไฟล์แอปพลิเคชันหลักของคุณ
var myLogModule = ต้องใช้ ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('การศึกษา')
ตอนนี้คุณสามารถเรียกใช้ไฟล์เหล่านี้โดยใช้คำสั่งด้านล่าง:
โหนด application.js
ตอนนี้ให้ฉันแสดงให้คุณเห็นว่าโมดูลภายนอกคืออะไร
โมดูลภายนอก
คุณสามารถใช้ภายนอกหรือ 3ถโมดูลปาร์ตี้โดยดาวน์โหลดผ่าน NPM เท่านั้น โดยทั่วไปแล้วโมดูลเหล่านี้ได้รับการพัฒนาโดยนักพัฒนารายอื่นและใช้งานได้ฟรี โมดูลภายนอกที่ดีที่สุดเพียงไม่กี่โมดูล ได้แก่ express, react, gulp, mongoose, mocha เป็นต้น
การโหลดโมดูลของบุคคลที่สามทั่วโลก:
npm ติดตั้ง --g
รวมไฟล์โมดูลของคุณไว้ในไฟล์แอปพลิเคชันหลักของคุณ:
npm ติดตั้ง - บันทึก
ไฟล์ JSON
package.json ไฟล์ ใน Node.js คือหัวใจของแอปพลิเคชันทั้งหมด โดยพื้นฐานแล้วเป็นไฟล์รายการที่มีข้อมูลเมตาของโครงการ ดังนั้นการทำความเข้าใจและการทำงานกับไฟล์นี้จึงมีความสำคัญมากสำหรับการพัฒนาโครงการ Node ที่ประสบความสำเร็จ
โดยทั่วไปไฟล์ package.json ประกอบด้วยข้อมูลเมตาของแอปพลิเคชันซึ่งแบ่งออกเป็นสองประเภทด้านล่าง:
- การระบุคุณสมบัติของข้อมูลเมตา: ซึ่งประกอบด้วยคุณสมบัติเช่นชื่อโครงการเวอร์ชันโมดูลปัจจุบันใบอนุญาตผู้เขียนโครงการคำอธิบายโครงการเป็นต้น
- เขียนลงไฟล์โดยตรง: คุณสามารถเขียนข้อมูลที่จำเป็นลงในไฟล์ package.json ได้โดยตรงและรวมไว้ในโปรเจ็กต์ของคุณ
ตอนนี้คุณได้ทำความคุ้นเคยกับส่วนประกอบต่างๆของแอปพลิเคชัน Node JS แล้ว ในส่วนถัดไปของบทช่วยสอน Node.js นี้ฉันจะแบ่งปันข้อมูลพื้นฐานเกี่ยวกับ Node Js เพื่อให้เราสามารถเริ่มต้นได้ด้วยตนเอง
พื้นฐาน Node.js
เนื่องจาก Node.js เป็นเฟรมเวิร์ก JavaScript จึงใช้ไวยากรณ์ JavaScript หากคุณต้องการเรียนรู้ JavaScript โดยละเอียดคุณสามารถอ้างถึงสิ่งนี้ . สำหรับตอนนี้ฉันจะอธิบายพื้นฐานเกี่ยวกับ Node.js ให้กับคุณเช่น:
ประเภทข้อมูล
เช่นเดียวกับภาษาโปรแกรมอื่น ๆ Node.js มีประเภทข้อมูลที่หลากหลายซึ่งแบ่งออกเป็นประเภทข้อมูลดั้งเดิมและไม่ใช่แบบดั้งเดิม
ประเภทข้อมูลดั้งเดิม ได้แก่ :
- สตริง
- จำนวน
- บูลีน
- Null
- ไม่ได้กำหนด
ประเภทข้อมูลที่ไม่ใช่แบบดั้งเดิม ได้แก่ :
- วัตถุ
- วันที่
- อาร์เรย์
ตัวแปร
ตัวแปรคือเอนทิตีที่เก็บค่าไว้ซึ่งอาจแตกต่างกันไปในระหว่างโปรแกรม ในการสร้างตัวแปรใน Node.js คุณต้องใช้ประโยชน์จากคำหลักที่สงวนไว้ var. คุณไม่จำเป็นต้องกำหนดประเภทข้อมูลเนื่องจากคอมไพเลอร์จะเลือกโดยอัตโนมัติ
ไวยากรณ์:
var varName = ค่า
ตัวดำเนินการ
Node.js รองรับตัวดำเนินการด้านล่าง:
แท็ก span ใน html คืออะไร
ประเภทตัวดำเนินการ | ตัวดำเนินการ |
เลขคณิต | +, -, /, *,%, ++, - |
การมอบหมายงาน | =, + =, - =, * =, / =,% = |
เงื่อนไข | =? |
การเปรียบเทียบ | ==, ===,! =,! ==,>,> =,<, <=, |
ตรรกะ | &&, ||,! |
Bitwise | &, |, ^, ~,<>, >>> |
ฟังก์ชั่น
ฟังก์ชั่นใน Node.js คือบล็อกของโค้ดที่มีชื่อและถูกเขียนขึ้นเพื่อให้บรรลุภารกิจเฉพาะ คุณต้องใช้ฟังก์ชันคำหลักเพื่อสร้าง โดยทั่วไปฟังก์ชันเป็นกระบวนการสองขั้นตอน อันดับแรกคือการกำหนดฟังก์ชันและอย่างที่สองเรียกใช้ ด้านล่างนี้คือไวยากรณ์ของการสร้างและเรียกใช้ฟังก์ชัน:
ตัวอย่าง:
// การกำหนดฟังก์ชัน display_Name (firstName, lastName) {alert ('Hello' + firstName + '' + lastName)} // เรียกใช้ฟังก์ชัน display_Name ('Park', 'Jimin')
วัตถุ
ออบเจ็กต์คือชนิดข้อมูลที่ไม่ใช่พื้นฐานที่สามารถเก็บค่าได้หลายค่าในแง่ของคุณสมบัติและวิธีการ อ็อบเจ็กต์ Node.js เป็นเอนทิตีแบบสแตนด์อโลนเนื่องจากไม่มีแนวคิดเกี่ยวกับคลาส คุณสามารถสร้างวัตถุได้สองวิธี:
- การใช้ Object literal
- การใช้ตัวสร้างวัตถุ
ตัวอย่าง:
// วัตถุที่มีคุณสมบัติและวิธีการ var พนักงาน = {// properties firstName: 'Minho', lastName: 'Choi', อายุ: 35, เงินเดือน: 50000, // method getFullName: function () {return this.firstName + '' + this.lastName}}
ระบบไฟล์
ในการเข้าถึงระบบไฟล์ฟิสิคัล Node.js ใช้ประโยชน์จากไฟล์ fs โมดูลซึ่งโดยทั่วไปจะดูแลการดำเนินการ I / O ของไฟล์แบบอะซิงโครนัสและซิงโครนัสทั้งหมด โมดูลนี้นำเข้าโดยใช้คำสั่งด้านล่าง:
var fs = ต้องการ ('fs')
การใช้งานทั่วไปบางประการสำหรับโมดูลระบบไฟล์ ได้แก่ :
- อ่านไฟล์
- fs.readFile ()
var http = ต้องใช้ ('http') var fs = ต้องใช้ ('fs') http.createServer (ฟังก์ชัน (req, res) {fs.readFile ('script.txt', ฟังก์ชัน (ผิดพลาด, ข้อมูล) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}). listen (8080)
- สร้างไฟล์
- appendFile ()
- เปิด()
- writeFile ()
- อัปเดตไฟล์
- fs.appendFile ()
- fs.writeFile ()
- ลบไฟล์
- fs.unlink ()
- เปลี่ยนชื่อไฟล์
- fs.rename ()
ดังนั้นด้วยคำสั่งเหล่านี้คุณสามารถดำเนินการที่จำเป็นทั้งหมดในไฟล์ของคุณได้ ตอนนี้เรามาดูบทช่วยสอน Node.js กันดีกว่าและดูว่าเหตุการณ์คืออะไรและจัดการอย่างไรใน Node.js
เหตุการณ์
ดังที่ได้กล่าวไปแล้วแอปพลิเคชัน Node.js เป็นแบบเธรดเดียวและขับเคลื่อนด้วยเหตุการณ์ Node.js รองรับการทำงานพร้อมกันเนื่องจากเป็นเหตุการณ์ขับเคลื่อนดังนั้นจึงใช้แนวคิดเช่นเหตุการณ์และการเรียกกลับ การเรียกฟังก์ชัน async ช่วย Node.js ในการรักษาการทำงานพร้อมกันตลอดทั้งแอปพลิเคชัน
โดยพื้นฐานแล้วในแอปพลิเคชัน Node.js จะมีลูปหลักที่รอและรับฟังเหตุการณ์และเมื่อเหตุการณ์ใด ๆ เสร็จสมบูรณ์มันจะเริ่มต้นฟังก์ชันเรียกกลับทันที
แผนภาพด้านล่างแสดงถึงการขับเคลื่อนของเหตุการณ์ใน Node.js
สิ่งหนึ่งที่คุณต้องทราบก็คือแม้ว่าเหตุการณ์จะดูคล้ายกับฟังก์ชันเรียกกลับ แต่ความแตกต่างอยู่ที่ฟังก์ชันการทำงาน เมื่อฟังก์ชันอะซิงโครนัสส่งคืนการเรียกกลับผลลัพธ์จะถูกเรียกใช้ในทางกลับกันการจัดการเหตุการณ์จะทำงานบนรูปแบบผู้สังเกตการณ์อย่างสมบูรณ์ และใน Node.js เมธอดที่รับฟังเหตุการณ์นั้นเรียกว่าผู้สังเกตการณ์ ในขณะที่เหตุการณ์ถูกทริกเกอร์ฟังก์ชัน Listener จะเริ่มดำเนินการโดยอัตโนมัติ โมดูลเหตุการณ์และคลาส EventEmitter จัดเตรียมเหตุการณ์ในตัวหลายเหตุการณ์ซึ่งใช้เพื่อผูกเหตุการณ์กับผู้ฟังเหตุการณ์ ด้านล่างฉันได้เขียนไวยากรณ์สำหรับสิ่งนั้น
การเชื่อมโยงเหตุการณ์กับผู้ฟังเหตุการณ์
// นำเข้าโมดูลเหตุการณ์ var my_Events = ต้องใช้ ('events') // สร้างวัตถุ eventEmitter var my_EveEmitter = my_Events.EventEmitter ใหม่ ()
การเชื่อมโยงตัวจัดการเหตุการณ์กับเหตุการณ์
// การเชื่อมโยงเหตุการณ์และตัวจัดการเหตุการณ์ my_EveEmitter.on ('eventName', eventHandler)
การเริ่มต้นเหตุการณ์
// เริ่มเหตุการณ์ my_EveEmitter.emit ('eventName')
ตอนนี้เรามาลองใช้สิ่งที่ฉันได้พูดคุยในส่วนกิจกรรม Node.js นี้โค้ดด้านล่างนี้แสดงการแสดงเหตุการณ์ง่ายๆใน Node.js
var emitter = ต้องใช้ ('events') ฟังก์ชัน EventEmitter iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Processing Iteration:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( ข้อมูล) {console.log ('เริ่มต้นกระบวนการสำหรับ' + ข้อมูล)}) it.on ('AfterProcess', function (info) {console.log ('Finishing processing for' + info)
ในส่วนถัดไปของบทช่วยสอน Node.js นี้ฉันจะให้ข้อมูลเชิงลึกเกี่ยวกับโมดูลที่สำคัญที่สุดของ Node.js ที่เรียกว่าโมดูล HTTP
โมดูล HTTP
โดยทั่วไปแล้ว Node.js จะใช้สำหรับการพัฒนาแอพพลิเคชั่นบนเซิร์ฟเวอร์ แต่เมื่อใช้โมดูลนี้คุณสามารถสร้างเว็บเซิร์ฟเวอร์ที่ตอบสนองคำขอของลูกค้าได้อย่างง่ายดาย ดังนั้นจึงเรียกอีกอย่างว่า Web Module และมีโมดูลเช่น HTTP และการร้องขอที่อำนวยความสะดวก Node.js ในการประมวลผลคำขอของเซิร์ฟเวอร์
คุณสามารถรวมโมดูลนี้ไว้ในแอปพลิเคชัน Node.js ของคุณได้อย่างง่ายดายเพียงแค่เขียนโค้ดด้านล่าง:
var http = ต้องใช้ ('http')
ด้านล่างฉันได้เขียนโค้ดซึ่งแสดงวิธีการพัฒนาเว็บเซิร์ฟเวอร์ใน Node.js
// เรียก http ไลบรารี var http = ต้องใช้ ('http') var url = ต้องใช้ ('url') // การสร้างเซิร์ฟเวอร์ var server = http.createServer (ฟังก์ชัน (req, res) {// การตั้งค่าส่วนหัวเนื้อหา res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // ส่งสตริงเพื่อตอบกลับ res.end (txt)}) // กำหนด 8082 เป็นพอร์ตการฟังของเซิร์ฟเวอร์ server.listen (8082)
ในส่วนถัดไปของบทช่วยสอน Node.js นี้ฉันจะพูดถึง Express.js ซึ่งถูกใช้อย่างมากสำหรับการพัฒนาแอปพลิเคชันบนเว็บฝั่งเซิร์ฟเวอร์
Express.js
Express.js เป็นเฟรมเวิร์กที่สร้างขึ้นบน Node.js ที่อำนวยความสะดวกในการจัดการการไหลของข้อมูลระหว่างเซิร์ฟเวอร์และเส้นทางในแอปพลิเคชันฝั่งเซิร์ฟเวอร์ เป็นเฟรมเวิร์กที่มีน้ำหนักเบาและยืดหยุ่นซึ่งมีคุณสมบัติหลากหลายที่จำเป็นสำหรับเว็บตลอดจนการพัฒนาแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
Express.js ได้รับการพัฒนาบนโมดูลมิดเดิลแวร์ของ Node.js ที่เรียกว่า เชื่อมต่อ . โมดูลเชื่อมต่อใช้ประโยชน์จากไฟล์ http โมดูลเพื่อสื่อสารกับ Node.js ดังนั้นหากคุณกำลังทำงานกับโมดูลมิดเดิลแวร์ที่ใช้การเชื่อมต่อใด ๆ คุณสามารถรวมเข้ากับ Express.js ได้อย่างง่ายดาย
ไม่เพียงแค่นี้ข้อดีบางประการของ Express.js ได้แก่ :
- ทำให้การพัฒนาเว็บแอปพลิเคชันเร็วขึ้น
- ช่วยในการสร้างแอปพลิเคชันบนมือถือและเว็บสำหรับประเภทหน้าเดียวหลายหน้าและแบบไฮบริด
- Express มีเครื่องยนต์สองแบบคือ Jade และ EJS
- Express เป็นไปตามสถาปัตยกรรม Model-View-Controller (MVC)
- ทำให้การรวมกับฐานข้อมูลเช่น MongoDB, Redis, MySQL
- กำหนดข้อผิดพลาดในการจัดการมิดเดิลแวร์
- ลดความซับซ้อนของการกำหนดค่าและปรับแต่งได้ง่ายสำหรับแอปพลิเคชัน
ด้วยคุณสมบัติทั้งหมดนี้ Express จะรับผิดชอบส่วนแบ็กเอนด์ใน MEAN stack Mean Stack คือสแต็กซอฟต์แวร์ JavaScript แบบโอเพนซอร์สที่ใช้สำหรับการสร้างเว็บไซต์แบบไดนามิกและเว็บแอปพลิเคชัน ที่นี่ หมายถึง หมายถึง ม ongoDB, คือ xpress.js, ถึง ngularJS และ น ode.js.
มาดูตัวอย่างง่ายๆเพื่อทำความเข้าใจวิธีที่ Express.js ทำงานกับ Node.js เพื่อให้งานของเราง่ายขึ้น แต่ก่อนที่คุณจะเริ่มทำงานกับ Express.js คุณต้องติดตั้งลงในระบบของคุณ
ในการติดตั้ง Express.js ทั่วโลกคุณสามารถใช้คำสั่งด้านล่าง:
npm ติดตั้ง -g express
หรือหากคุณต้องการติดตั้งในโฟลเดอร์โปรเจ็กต์ของคุณคุณต้องดำเนินการคำสั่งด้านล่าง:
npm ติดตั้งด่วน - บันทึก
เนื่องจากเราได้เตรียมการทั้งหมดเรียบร้อยแล้วตอนนี้เรามาเข้าสู่การนำไปใช้งานจริงโดยตรง ที่นี่ฉันจะแสดงแอปพลิเคชันการตรวจสอบผู้ใช้แบบง่ายโดยใช้ Node.js และ Express.js
การสอน Node.js ทีละขั้นตอนการพัฒนาแอปพลิเคชันด้วย Express.js
สำหรับสิ่งนี้เราจะต้องใช้ไฟล์ด้านล่าง:
- package.json
- script.js
- มุมมอง
- index.jade
- login.jade
- secure.jade
- ไม่ได้รับอนุญาต jade
- welcome.jade
- lib
- เส้นทาง js
เริ่มต้นด้วย package.json .
{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express with Node.js', 'version': '0.0.0', 'scripts': {'start': 'node script.js '},' engine ': {' node ':' ~ 0.4.12 '},' dependencies ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}
ถัดไปคุณต้องสร้างไฟล์ script.js .
var express = ต้องใช้ ('express') var http = ต้องใช้ ('http') var port = 8999 var app = express () const flash = ต้องใช้ ('connect-flash') var cookieParser = ต้องใช้ ('cookie-parser') var server = http.createServer (app) function checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // ไม่ให้บริการ / รักษาความปลอดภัยให้กับผู้ที่ไม่ได้เข้าสู่ระบบถ้า (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('unauthorized', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({secret: 'example'})) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) ต้องใช้ ('./ lib / route.js') (app) คอนโซล app.listen (พอร์ต) .log ('โหนดกำลังฟังบนพอร์ต% s', พอร์ต)
ตอนนี้สร้างโฟลเดอร์ชื่อมุมมองซึ่งคุณจะเพิ่มไฟล์ Jade ที่จะรับผิดชอบการดูหน้าต่างๆ ไฟล์มุมมองแรกที่คุณต้องสร้างคือ index.jade .
กรอบประเภทต่างๆในซีลีเนียม
!!! 5 html (lang = 'en') หัวเรื่องการพิสูจน์ตัวตนผู้ใช้ตัวอย่างเนื้อหา h1 center การสาธิตการพิสูจน์ตัวตนโดยใช้ Express h3 ไปที่ h4 ul li: a (href = '/ secure') เนื้อหาที่ปลอดภัย li: a (href = '/ welcome') หน้ายินดีต้อนรับ li: a (href = '/ logout') ออกจากระบบ
ตอนนี้สร้างไฟล์ login.jade ไฟล์.
!!! 5 html (lang = 'en') head title Express การพิสูจน์ตัวตนตัวอย่าง body h1 center ลงชื่อเข้าใช้ศูนย์ตัวอย่างการพิสูจน์ตัวตน Express p ใช้ ผู้ใช้ สำหรับชื่อผู้ใช้และ ผ่าน สำหรับรหัสผ่าน form (method = 'post') p label (for = 'username') การป้อนที่อยู่อีเมล (type = 'text', name = 'username', class = 'form-control', id = 'exampleInputPassword1', placeholder = ' อีเมล ', style =' width: 400px ') p ป้ายกำกับกลาง (สำหรับ =' รหัสผ่าน ') ใส่รหัสผ่าน (type =' password ', name =' password ', class =' form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center ส่ง - แต่ละข้อความใน flash h4 (style = 'color: red') # {message}
ขั้นตอนต่อไปคือการสร้างไฟล์ welcome.jade .
!!! 5 html (lang = 'en') head title User Authentication Example body h1 center ยินดีต้อนรับสู่บทช่วยสอน Edureka!
จากนั้นสร้างไฟล์ secure.jade ไฟล์.
!!! 5 html (lang = 'en') head title Express Authentication ตัวอย่างเนื้อหา h1 center สวัสดีผู้ใช้ที่ปลอดภัย p ไปที่ ul li: a (href = '/ secure') Secure content li: a (href = '/ welcome') หน้ายินดีต้อนรับ li: a (href = '/ logout') ออกจากระบบ
ตอนนี้สร้างไฟล์ ไม่ได้รับอนุญาต jade ไฟล์.
!!! 5 html (lang = 'en') head title User Authentication ตัวอย่างเนื้อหา h1 center ไม่ได้รับอนุญาต p คุณไม่ได้รับอนุญาตให้ดูหน้านี้ กรุณา ' เพื่อจะดำเนินการต่อ
ตอนนี้คุณต้องสร้างโฟลเดอร์และตั้งชื่อ lib . ตอนนี้สร้างไฟล์ route.js ไฟล์ซึ่งจะแมปหน้าทั้งหมด
var util = ต้องใช้ ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / welcome ', function (req, res, next) {res.render (' welcome ')}) app.get (' / secure ', function (req, res, next) {res.render (' secure ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}) app.post ('/ login', function ( req, res, next) {// คุณอาจต้องการทำการค้นหาฐานข้อมูลหรือสิ่งที่ปรับขนาดได้มากขึ้นที่นี่ถ้า (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('error', 'Username and password are wrong') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}
ตอนนี้หากคุณต้องการรันโค้ดนี้ด้วยตัวคุณเองคุณสามารถดาวน์โหลดได้จากที่นี่: Node.js บทช่วยสอน PDF .
ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบทช่วยสอน Node.js นี้ ฉันหวังว่าฉันจะสามารถอธิบายแนวคิดของ Node.js ได้ตั้งแต่ต้น
หากคุณพบ“ บทช่วยสอน Node.js นี้ ” เกี่ยวข้อง ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบทช่วยสอน Node.js นี้แล้วเราจะติดต่อกลับไป