ระบบโมดูล Node.js
การสร้างไฟล์ Node.js สามารถเรียกกันและกัน Node.js ให้ระบบโมดูลาร์ที่เรียบง่าย
โมดูลเป็นส่วนสำคัญของการใช้งาน Node.js ไฟล์และโมดูลเป็น 1-1 ในคำอื่น ๆ ไฟล์ Node.js เป็นโมดูลแฟ้มนี้อาจจะเป็นรหัส JavaScript, JSON หรือรวบรวม C / C ++ ส่วนขยาย
สร้างโมดูล
ใน Node.js, สร้างโมดูลเป็นเรื่องง่ายมากที่เราสร้างแฟ้ม 'main.js' ดังต่อไปนี้:
var hello = require('./hello'); hello.world();
ตัวอย่างข้างต้นรหัส require ( './ สวัสดี') แนะนำไดเรกทอรีไฟล์ hello.js ปัจจุบัน (./ ไดเรกทอรีปัจจุบัน Node.js JS ต่อท้ายเริ่มต้น)
Node.js ให้การส่งออกและต้องใช้วัตถุสองที่การส่งออกมีการเชื่อมต่อโมดูลเปิดต้องใช้โมดูลสำหรับการซื้อจากอินเตอร์เฟซภายนอกคือการส่งออกเป้าหมายโมดูลการเข้าซื้อกิจการ
ต่อไปเรามาสร้างไฟล์ hello.js ดังต่อไปนี้:
exports.world = function() { console.log('Hello World'); }
ในตัวอย่างข้างต้น hello.js การส่งออกโดยโลกเป็นโมดูลอินเตอร์เฟซการเข้าถึงวัตถุโมดูลนี้ใน main.js โหลดผ่าน require ( './ สวัสดี') แล้วคุณโดยตรงสามารถเข้าถึงวัตถุสมาชิก hello.js ในการส่งออก ฟังก์ชั่น
บางครั้งเราก็ต้องการที่จะจัดแพคเกจโมดูลวัตถุ, รูปแบบมีดังนี้:
module.exports = function() { // ... }
ตัวอย่างเช่น:
//hello.js function Hello() { var name; this.setName = function(thyName) { name = thyName; }; this.sayHello = function() { console.log('Hello ' + name); }; }; module.exports = Hello;
ดังนั้นคุณจะได้รับวัตถุโดยตรง:
//main.js var Hello = require('./hello'); hello = new Hello(); hello.setName('BYVoid'); hello.sayHello();
การเปลี่ยนแปลงเพียงอย่างเดียวคือการใช้ module.exports โมดูลอินเตอร์เฟซ = สวัสดีแทนที่ exports.world = function () {} เมื่ออ้างอิงโมดูลนอกสวัสดีวัตถุที่มีวัตถุอินเตอร์เฟซที่จะออกตัวเองมากกว่าการส่งออกเดิม
ที่จะนำโมดูลเซิร์ฟเวอร์
บางทีคุณอาจจะได้สังเกตเห็นว่าเราได้ใช้ในรหัสโมดูล เช่นนี้
var http = require("http"); ... http.createServer(...);
Node.js มาพร้อมกับคุณสมบัติที่เรียกว่า "http" โมดูลเราขอให้กลับมาคุ้มค่าให้กับตัวแปรท้องถิ่นในรหัสของเรา
นี้จะทำให้เราเป็นตัวแปรท้องถิ่นมีทุกวิธีการสาธารณะโมดูล http ให้วัตถุ
วิธีการ Node.js ต้องใช้กลยุทธ์การค้นหาไฟล์จะเป็นดังนี้:
เนื่องจากมีโมดูลชั้นสี่ (โมดูลหลักและสามโมดูลไฟล์) Node.js แม้จะต้องใช้วิธีการง่ายมาก แต่ภายในมันเป็นโหลดที่ซับซ้อนมากโหลดลำดับความสำคัญของพวกเขาจะแตกต่างกัน ที่แสดงด้านล่าง:
โหลดจากโมดูลแคชไฟล์
แม้จะมีการจัดลำดับความสำคัญที่แตกต่างกันโมดูลพื้นเมืองและไฟล์โมดูล แต่มันจะไม่ได้มีความสำคัญกว่าไฟล์โมดูลที่มีอยู่จากการโหลดโมดูลแคช
โหลดจากโมดูลพื้นเมือง
ลำดับความสำคัญโมดูลพื้นเมืองหลังจากโมดูลแคชไฟล์ที่มีความสำคัญ ต้องใช้วิธีการหลังจากแยกชื่อไฟล์ให้ตรวจสอบความสำคัญไม่ว่าจะเป็นโมดูลในรายการโมดูลพื้นเมือง ในโมดูล http ตัวอย่างเช่นแม้ว่าจะมีไฟล์ HTTP / http.js / http.node / http.json ในไดเรกทอรี require ( "http") จะไม่ถูกโหลดจากแฟ้ม แต่โหลดจากโมดูลพื้นเมือง
โมดูลพื้นเมืองนอกจากนี้ยังมีเขตกันชนก็ยังโหลดพิเศษจากแคช หากบัฟเฟอร์ไม่โหลดก่อนแล้วโทรโหลดโมดูลพื้นเมืองจะถูกโหลดและดำเนินการ
โหลดจากไฟล์
เมื่อไฟล์ไม่ได้อยู่ในโมดูลแคชและไม่โมดูลพื้นเมืองเมื่อ Node.js จะต้องมีพารามิเตอร์ที่เข้ามาวิธีการวิเคราะห์และโหลดไฟล์ที่เกิดขึ้นจริงจากระบบไฟล์ที่ขั้นตอนการโหลดของการรวบรวมและรายละเอียดบรรจุภัณฑ์ในส่วนก่อนหน้า มันได้รับการแนะนำที่เราจะอธิบายในรายละเอียดขั้นตอนการหาโมดูลไฟล์ซึ่งยังมีรายละเอียดบางอย่างมูลค่ารู้
ต้องใช้วิธีการโอนยอมรับพารามิเตอร์ต่อไปนี้:
- HTTP, FS เส้นทาง ฯลฯ โมดูลพื้นเมือง
- ./mod หรือ ../mod เส้นทางญาติโมดูลไฟล์
- / Pathtomodule / MOD, เส้นทางที่แน่นอนของโมดูลไฟล์
- MOD, โมดูลไฟล์โมดูลที่ไม่ใช่เจ้าของภาษา