อื่น ๆ เช่นโมดูลบุคคลที่สามหรือโมดูลท้องถิ่นที่ติดตั้งผ่าน NPM แต่ละโมดูลจะเปิดเผย API สาธารณะ เพื่อให้นักพัฒนาสามารถนำเข้า ชอบ
การคัดลอกรหัสมีดังนี้:
var mod = ต้องการ ('module_name')
หลังจากที่ประโยคนี้ถูกเรียกใช้งานโมดูลหรือโมดูลในตัวที่ติดตั้งผ่าน NPM จะถูกโหลดภายในโหนด ฟังก์ชั่นที่ต้องการส่งคืนวัตถุที่มี API ที่เปิดเผยอาจเป็นฟังก์ชันวัตถุหรือแอตทริบิวต์เช่นฟังก์ชันอาร์เรย์หรือแม้แต่วัตถุประเภท JS โดยพลการ
นี่คือกลไกการโหลดและการแคชของโมดูลโหนด
1) โหลดโมดูลในตัว (โมดูลหลัก)
2) โหลดโมดูลไฟล์ (โมดูลไฟล์)
3) โหลดโมดูลไดเรกทอรีไฟล์ (โมดูลโฟลเดอร์)
4) โหลดโมดูลใน node_modules
5) แคชที่โหลดโมดูลโดยอัตโนมัติ
1. โหลดโมดูลในตัว
โมดูลในตัวของ Node ถูกรวบรวมเป็นรูปแบบไบนารีและชื่อจะถูกใช้โดยตรงแทนเส้นทางไฟล์เมื่ออ้างอิง เมื่อโมดูลของบุคคลที่สามและโมดูลในตัวมีชื่อเดียวกันโมดูลในตัวจะแทนที่โมดูลบุคคลที่สามด้วยชื่อเดียวกัน ดังนั้นเมื่อการตั้งชื่อคุณต้องระวังไม่ให้มีชื่อเดียวกับโมดูลในตัว หากคุณได้รับโมดูล HTTP
การคัดลอกรหัสมีดังนี้:
var http = reghed ('http')
HTTP ที่ส่งคืนเป็นโมดูลในตัวที่ใช้โหนดฟังก์ชัน HTTP
2. โหลดโมดูลไฟล์
เส้นทางที่แน่นอน
การคัดลอกรหัสมีดังนี้:
var mymod = ต้องการ ('/home/base/my_mod')
หรือเส้นทางสัมพัทธ์
การคัดลอกรหัสมีดังนี้:
var mymod = ต้องการ ('./ my_mod')
โปรดทราบว่าส่วนขยาย ".js" ถูกละเว้นที่นี่และต่อไปนี้เป็นเพียร์
การคัดลอกรหัสมีดังนี้:
var mymod = ต้องการ ('./ my_mod')
var mymod = ต้องการ ('./ my_mod.js')
3. โหลดโมดูลไดเรกทอรีไฟล์
คุณสามารถต้องการไดเรกทอรีโดยตรงโดยสมมติว่ามีไดเรกทอรีชื่อโฟลเดอร์เช่น
การคัดลอกรหัสมีดังนี้:
var mymod = ต้องการ ('./ โฟลเดอร์')
ณ จุดนี้โหนดจะค้นหาไดเรกทอรีโฟลเดอร์ทั้งหมดโหนดจะสมมติว่าโฟลเดอร์เป็นแพ็คเกจและพยายามค้นหาแพ็คเกจไฟล์แพคเกจแพ็คเกจ. json หากไดเรกทอรีโฟลเดอร์ไม่มีไฟล์ package.json โหนดจะสมมติว่าไฟล์หลักเริ่มต้นคือ index.js ซึ่งหมายความว่า index.js จะถูกโหลด หาก index.js ไม่มีอยู่การโหลดจะล้มเหลว
หากโครงสร้างไดเรกทอรีมีดังนี้
package.json หมายถึงดังนี้
การคัดลอกรหัสมีดังนี้:
-
"ชื่อ": "แพ็ค",
"หลัก": "moda.js"
-
ในเวลานี้ต้องการ ('./ folder') จะส่งคืนโมดูล moda.js หาก Package.json ไม่มีอยู่จะส่งคืนโมดูล index.js หาก index.js ไม่มีอยู่จะมีข้อยกเว้นการโหลดเกิดขึ้น
4. โหลดโมดูลใน node_modules
หากชื่อโมดูลไม่ใช่เส้นทางหรือโมดูลในตัวโหนดจะพยายามค้นหาในโฟลเดอร์ Node_Modules ของไดเรกทอรีปัจจุบัน หากไม่พบ node_modules ในไดเรกทอรีปัจจุบันโหนดจะค้นหาจาก node_modules ในไดเรกทอรีหลักแล้วจากนั้นจะดำเนินการอีกครั้งจนกระทั่งไดเรกทอรีราก
ไม่ต้องกังวลคำสั่ง NPM ช่วยให้เราสามารถติดตั้งถอนการติดตั้งและอัปเดตไดเรกทอรี Node_Modules ได้อย่างสะดวกสบายมาก
5. แคชโมดูลโหลดโดยอัตโนมัติ
โหนดสำหรับโมดูลที่โหลดถูกแคชโดยไม่ต้องค้นหาอีกครั้งทุกครั้ง นี่คือตัวอย่าง
moda.js
การคัดลอกรหัสมีดังนี้:
console.log ('Module Moda เริ่มโหลด ... ')
Exports = function () {
console.log ('สวัสดี')
-
console.log ('โมดูลโมดูลได้รับการโหลด')
init.js
การคัดลอกรหัสมีดังนี้:
var mod1 = ต้องการ ('./ moda')
var mod2 = ต้องการ ('./ moda')
console.log (mod1 === mod2)
การดำเนินการบรรทัดคำสั่ง:
โหนด init.js
ป้อนดังนี้
จะเห็นได้ว่าถึงแม้ว่าจะต้องการสองครั้ง แต่ moda.js ยังคงดำเนินการเพียงครั้งเดียว MOD1 และ MOD2 นั้นเหมือนกันนั่นคือการอ้างอิงทั้งสองชี้ไปที่วัตถุโมดูลเดียวกัน