โครงร่างด่วน
โมดูลใน Node.js คืออะไร?
ใน Node.js “ โมดูล ” สอดคล้องกับไลบรารีที่สร้างการเชื่อมต่อกับแอปพลิเคชันตามบริบท ช่วยให้นักพัฒนาสามารถนำโค้ดที่ห่อหุ้มกลับมาใช้ใหม่ได้ทุกเมื่อที่จำเป็น แบ่งออกเป็นสามประเภทหลัก: โมดูล 'ในตัว', 'ท้องถิ่น' และ 'บุคคลที่สาม' โมดูลเหล่านี้ยังมีวิธีการและคุณสมบัติที่หลากหลายซึ่งดำเนินการตามที่ระบุตามฟังก์ชันการทำงาน
วิธีแก้ไขข้อผิดพลาด “ไม่พบโมดูล” โดยใช้ Node.js
ส่วนนี้รวบรวมสาเหตุที่เป็นไปได้ทั้งหมดที่ทำให้เกิดข้อผิดพลาด “ไม่พบโมดูล” และยังให้แนวทางแก้ไขที่สามารถใช้งานได้เพื่อแก้ไข:
- เหตุผลที่ 1: ไม่ได้ติดตั้งโมดูล
- วิธีแก้ไข: ติดตั้งโมดูลที่จำเป็น
- เหตุผลที่ 2: เส้นทางโมดูลไม่ถูกต้อง
- วิธีแก้ไข: ระบุเส้นทางโมดูลที่ถูกต้อง
- เหตุผลที่ 3: ชื่อโมดูลไม่ถูกต้อง (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
- วิธีแก้ไข: พิมพ์ชื่อโมดูลที่ถูกต้อง
- เหตุผลที่ 4: นามสกุลไฟล์ไม่ถูกต้อง
- วิธีแก้ไข: พิมพ์นามสกุลไฟล์ที่ถูกต้อง
- เหตุผลที่ 5: การติดตั้งโมดูลทั่วโลก
- วิธีแก้ไข: ติดตั้งโมดูลภายในเครื่อง
- เหตุผลที่ 6: ไฟล์รายการหายไป
- วิธีแก้ไข: ติดตั้งโมดูลที่จำเป็นอีกครั้ง
- จะทำอย่างไรถ้าข้อผิดพลาด “ไม่พบโมดูล” ยังคงอยู่?
- วิธีแก้ไข: ลบโฟลเดอร์ 'node_modules' และไฟล์ 'package-lock.json'
เหตุผลที่ 1: ไม่ได้ติดตั้งโมดูลที่จำเป็น
สาเหตุที่พบบ่อยที่สุดสำหรับ “ ไม่พบโมดูล ” ข้อผิดพลาดคือสิ่งที่จำเป็น “ ไม่ได้ติดตั้งโมดูลของบริษัทอื่น ” ในโครงการ Node.js ปัจจุบัน สมมติว่าเรานำเข้าโมดูล “mysql” ของบริษัทอื่นในแอปพลิเคชัน Node.js ในลักษณะนี้:
ค่าคงที่ mysql = จำเป็นต้อง ( 'มายเอสคิวแอล' ) ;
ในคำสั่งข้างต้น “ จำเป็นต้อง() ” วิธีการรวมโมดูล “mysql” เข้ากับแอปพลิเคชัน node.js ปัจจุบัน
ดำเนินการไฟล์ “.js”:
ดัชนีโหนด เจสผลลัพธ์ด้านล่างสร้างข้อผิดพลาดที่กล่าวถึงเนื่องจากไม่ได้ติดตั้งโมดูล “mysql” ในโครงการ Node.js ปัจจุบัน:
วิธีแก้ไข: ติดตั้งโมดูลที่จำเป็น
วิธีแก้ไขข้อผิดพลาดที่กล่าวถึงข้างต้นคือการติดตั้งโมดูลที่จำเป็นอย่างถูกต้องด้วยความช่วยเหลือของ ' เวลา 22.00 น / เส้นด้าย ” ผู้จัดการแพ็คเกจ สำหรับสถานการณ์นี้ มีการติดตั้งโมดูล “mysql” ที่จำเป็นด้วยคำสั่งการติดตั้ง “npm”:
npm ติดตั้ง mysqlผลลัพธ์แสดงการติดตั้งโมดูล “mysql” ในโครงการ Node.js ปัจจุบันสำเร็จ:
ตอนนี้รันไฟล์ '.js' อีกครั้ง:
ดัชนีโหนด เจสสามารถวิเคราะห์ได้ว่าคำสั่งข้างต้นดำเนินการได้สำเร็จโดยไม่สร้างข้อผิดพลาด 'ไม่พบโมดูล':
เหตุผลที่ 2: เส้นทางโมดูลไม่ถูกต้อง
อีกเหตุผลหนึ่งสำหรับ “ ไม่พบโมดูล ” ข้อผิดพลาดคือ “ เส้นทางโมดูลไม่ถูกต้อง '. มันมักจะเกิดขึ้นเมื่อผู้ใช้นำเข้าโมดูลภายในเครื่องผ่านเส้นทางสัมพัทธ์ สมมติว่าผู้ใช้สร้างโมดูลที่กำหนดเองลงในโฟลเดอร์เฉพาะและนำเข้าโมดูลดังกล่าวลงในแอปพลิเคชัน Node.js ก่อนที่จะดำเนินการนี้ ตรวจสอบให้แน่ใจว่าเส้นทางที่ระบุนั้นถูกต้อง มิฉะนั้นจะพบข้อผิดพลาดที่กล่าวถึง
ตัวอย่างเช่น โมดูลภายในเครื่อง/ที่ผู้ใช้กำหนดชื่อ “ โมดูลของฉัน ” มีอยู่ในโฟลเดอร์ “./custom-modules”:
ผู้ใช้นำเข้า 'myModule' ที่ไฮไลต์ไว้ข้างต้นลงในแอปพลิเคชัน Node.js ปัจจุบันผ่านเส้นทางสัมพัทธ์:
ค่าคงที่ ภาษา = จำเป็นต้อง ( './myModule' ) ;เรียกใช้ไฟล์ '.js':
ดัชนีโหนด เจสจะเห็นได้ว่าเนื่องจากเส้นทางที่ไม่ถูกต้องของ 'myModule' จึงเกิดข้อผิดพลาด 'ไม่พบโมดูล':
วิธีแก้ไข: ระบุเส้นทางโมดูลที่ถูกต้อง
วิธีแก้ไขข้อผิดพลาดที่กล่าวถึงข้างต้นคือการระบุเส้นทางที่ถูกต้องหรือแน่นอนของโมดูลที่โมดูลนั้นตั้งอยู่ ที่นี่ เราได้ส่งผ่านเส้นทางที่ถูกต้อง 'myModule' เพื่อแก้ไขข้อผิดพลาด 'ไม่พบโมดูล':
ค่าคงที่ ภาษา = จำเป็นต้อง ( './โมดูลที่กำหนดเอง/myModule' ) ;เริ่มต้นไฟล์ “.js”:
ดัชนีโหนด เจสสังเกตได้ว่าเอาต์พุตด้านล่างไม่แสดงข้อผิดพลาดที่พบ เนื่องจากเส้นทางที่ระบุของโมดูลที่นำเข้าได้รับการแก้ไขแล้ว:
เหตุผลที่ 3: ชื่อโมดูลไม่ถูกต้อง (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
โมดูลคือ “ กรณีที่สำคัญ ” ใน Linux และ macOS เช่น หากชื่อโมดูลถูกติดตั้งเป็นตัวพิมพ์ใหญ่และผู้ใช้นำเข้าเป็นตัวพิมพ์เล็ก จากนั้น “ ไม่พบโมดูล ” ข้อผิดพลาดจะถูกสร้างขึ้น นี่เป็นเนื่องจากมีไม่ตรงกันระหว่างชื่อโมดูลจริงและคำสั่งนำเข้า
ที่นี่ โมดูล “csvtojson” ที่ติดตั้งจะถูกนำเข้าในรูปแบบ “ตัวพิมพ์ใหญ่” ลงในแอปพลิเคชัน Node.js:
ค่าคงที่ ซีเอสวีทอจสัน = จำเป็นต้อง ( 'ซีเอสวีทอจสัน' ) ;ดำเนินการไฟล์ “.js”:
ดัชนีโหนด เจสผลลัพธ์สร้างข้อผิดพลาด 'ไม่พบโมดูล' เนื่องจากชื่อโมดูลไม่ถูกต้อง:
วิธีแก้ไข: พิมพ์ชื่อโมดูลที่ถูกต้อง
วิธีแก้ไขข้อผิดพลาดข้างต้นคือการระบุตัวพิมพ์ที่ถูกต้อง (ล่างหรือบน) ของโมดูลที่นำเข้าในขณะที่ใช้ ' จำเป็นต้อง() ' วิธี. ในสถานการณ์สมมตินี้ โมดูล 'csvtojson' ถูกระบุในวิธีการ 'require()' ในกรณีที่ถูกต้อง:
ค่าคงที่ ซีเอสวีทอจสัน = จำเป็นต้อง ( 'ซีเอสวีทอจสัน' ) ;เรียกใช้ไฟล์ '.js' อีกครั้ง:
ดัชนีโหนด เจสตอนนี้คำสั่งข้างต้นไม่ได้สร้างข้อผิดพลาด “ไม่พบโมดูล” เนื่องจากกรณีของแพ็คเกจที่นำเข้าเหมือนกับชื่อจริง:
เหตุผลที่ 4: นามสกุลไฟล์ไม่ถูกต้อง
“ ไม่พบโมดูล ” ข้อผิดพลาดยังสามารถเกิดขึ้นได้เนื่องจาก “ นามสกุลไฟล์ไม่ถูกต้อง '. คล้ายกับเส้นทางของไฟล์ที่ไม่ถูกต้อง ซึ่งเกิดขึ้นในกรณีของโมดูลในเครื่อง ตัวอย่างเช่น โมดูลในเครื่องจะถูกสร้างขึ้นในไฟล์ “.json” และระบุไว้ในแอปพลิเคชัน Node.js พร้อมด้วยนามสกุล “.js” จากนั้นข้อผิดพลาดเฉพาะข้างต้นจะถูกสร้างขึ้น:
ในสถานการณ์สมมตินี้ “ myModule.js ” ที่แสดงในเหตุผล “ เส้นทางโมดูลไม่ถูกต้อง” ถือเป็นไฟล์ตัวอย่าง มีการเข้าถึงในแอปพลิเคชัน Node.js ปัจจุบันโดยระบุส่วนขยาย “.json” ดังนี้:
ค่าคงที่ ภาษา = จำเป็นต้อง ( './custom-modules/myModule.json' ) ;ดำเนินการไฟล์ “.js”:
ดัชนีโหนด เจสผลลัพธ์สร้างข้อผิดพลาด 'ไม่พบโมดูล' เนื่องจากนามสกุลไฟล์ไม่ถูกต้องของไฟล์ 'myModule':
วิธีแก้ไข: พิมพ์นามสกุลไฟล์ที่ถูกต้อง
วิธีแก้ไขข้อผิดพลาดที่กล่าวถึงคือการพิมพ์นามสกุลไฟล์ที่ถูกต้องซึ่งสร้างโมดูลในเครื่อง ตัวอย่างเช่น เราได้ระบุนามสกุลไฟล์ที่ถูกต้องของไฟล์ “myModule.js” เพื่อแก้ไขข้อผิดพลาด “ไม่พบโมดูล”:
ค่าคงที่ ภาษา = จำเป็นต้อง ( './custom-modules/myModule.js' ) ;เรียกใช้ไฟล์ '.js':
ดัชนีโหนด เจสขณะนี้คำสั่งดังกล่าวได้รับการดำเนินการเรียบร้อยแล้วโดยไม่แสดงข้อผิดพลาด 'ไม่พบโมดูล':
เหตุผลที่ 5: การติดตั้งโมดูลทั่วโลก
โมดูลโหนดสามารถติดตั้งในเครื่อง (สำหรับโครงการเฉพาะ) หรือทั่วโลก (สำหรับทุกโครงการ) ในลินุกซ์ , หากโมดูลที่ต้องการได้รับการติดตั้งแบบโกลบอลในระบบปฏิบัติการและเข้าถึงได้ในโครงการเฉพาะโดยไม่ต้องติดตั้งในเครื่อง ดังนั้น “ ไม่พบโมดูล ” เกิดข้อผิดพลาด
ตัวอย่างเช่น “ mongodb ” โมดูลได้รับการติดตั้งทั่วโลกในระบบปฏิบัติการ Linux ผ่านทาง “ sudo npm ติดตั้ง -g mongodb ” และเข้าถึงได้ภายในเครื่องในโปรเจ็กต์โหนดเฉพาะ:
ค่าคงที่ mongodb = จำเป็นต้อง ( 'มอนก็อด' )เรียกใช้ไฟล์ '.js':
ดัชนีโหนด เจสผลลัพธ์สร้างข้อผิดพลาดที่กล่าวถึงเนื่องจากไม่ได้ติดตั้ง 'mongodb' ในเครื่องในโครงการโหนดปัจจุบัน:
วิธีแก้ไข: ติดตั้งโมดูลภายในเครื่อง
วิธีแก้ไขข้อผิดพลาดที่พบคือการติดตั้งโมดูลในเครื่องสำหรับโปรเจ็กต์ Node.js เฉพาะบนระบบปฏิบัติการ Linux
ที่นี่ “ mongodb โมดูล ” ได้รับการติดตั้งภายในโปรเจ็กต์ปัจจุบันโดยใช้คำสั่งการติดตั้ง “npm”:
npm ติดตั้ง mongodb
เมื่อการติดตั้ง “mongodb” ในเครื่องเสร็จสิ้น ให้นำเข้าไฟล์ดังกล่าวลงในไฟล์ “.js” และดำเนินการ:
ดัชนีโหนด เจสจะเห็นได้ว่าข้อผิดพลาด “ไม่พบโมดูล” ได้รับการแก้ไขโดยการติดตั้งโมดูล “mongodb” ในเครื่องสำหรับโครงการ Node.js ปัจจุบัน:
ในวินโดวส์ การติดตั้งโมดูลส่วนกลางและภายในเครื่องไม่สร้างข้อผิดพลาด 'ไม่พบโมดูล'
เหตุผลที่ 6: ไฟล์รายการหายไป
“ ไม่พบโมดูล ” ข้อผิดพลาดยังสามารถเกิดขึ้นได้เนื่องจากไม่มีไฟล์รายการหลักใน “package.json” ของโมดูล ไฟล์รายการหลักของแต่ละโมดูลคือไฟล์ 'index.js' ตามค่าเริ่มต้น
สมมติว่า หากผู้ใช้ลบออกโดยไม่ได้ตั้งใจ ก็จะเกิดข้อผิดพลาดข้างต้นขึ้น เนื่องจากในขณะที่นำเข้าโมดูลที่ระบุ “ จำเป็นต้อง() ” วิธีการนำทางไปยังโฟลเดอร์ของโมดูลนั้นและค้นหาจุดเริ่มต้น หากไม่มีอยู่ก็จะไม่สามารถนำเข้าโมดูลนั้นไปยังแอปพลิเคชัน Node.js
ไฟล์รายการ “index.js” ของโมดูลที่ต้องการมีอยู่ในโครงสร้างโฟลเดอร์ ตัวอย่างด้านล่างแสดงไฟล์รายการของโมดูล “mysql”:
ตอนนี้ไฟล์ 'index.js' ที่ไฮไลต์ด้านบนจะถูกลบออกจากโฟลเดอร์ 'mysql' จากนั้นนำเข้าโมดูล 'mysql' ลงในแอปพลิเคชัน Node.js:
ค่าคงที่ mysql = จำเป็นต้อง ( 'มายเอสคิวแอล' )ดำเนินการไฟล์ “.js”:
ดัชนีโหนด เจสที่นี่เอาต์พุตสร้างข้อผิดพลาด “ไม่พบโมดูล” เนื่องจากไม่มีไฟล์รายการของโมดูล “mysql”:
วิธีแก้ไข: ติดตั้งโมดูลที่จำเป็นอีกครั้ง
วิธีแก้ไขข้อผิดพลาดที่พบข้างต้นคือการลบ ' node_modules ” และติดตั้งโมดูลที่ต้องการอีกครั้ง ที่นี่โมดูล “mysql” จะถูกติดตั้งอีกครั้งหลังจากลบไดเร็กทอรี “node_modules”:
npm ติดตั้ง mysql
หลังจากติดตั้ง “mysql” สำเร็จ ระบบใหม่ “ node_modules ” ไดเร็กทอรีถูกสร้างขึ้นโดยอัตโนมัติซึ่งมีโครงสร้างโฟลเดอร์ของโมดูล “mysql” ซึ่งมี “index.js” อยู่:
ตอนนี้ให้เรียกใช้ไฟล์ '.js' อีกครั้ง:
ดัชนีโหนด เจสที่นี่เอาต์พุตไม่สร้างข้อผิดพลาด 'ไม่พบโมดูล' เนื่องจากมีไฟล์รายการชื่อ 'index.js' ของโมดูล 'mysql':
จะทำอย่างไรถ้าข้อผิดพลาด “ไม่พบโมดูล” ยังคงอยู่?
หาก “ ไม่พบโมดูล ” ข้อผิดพลาดยังคงมีอยู่หลังจากแก้ไขด้วยวิธีแก้ไขปัญหาข้างต้นแล้วลบ “ node_modules ” โฟลเดอร์ โฟลเดอร์ “node_modules” สร้างขึ้นโดยอัตโนมัติเมื่อมีการติดตั้งโมดูลของบุคคลที่สาม ประกอบด้วยแพ็คเกจของบุคคลที่สามทั้งหมดที่ต้องใช้โปรเจ็กต์ Node.js
นอกจากนี้ “ แพคเกจ lock.json ” ไฟล์ยังสร้างขึ้นโดยอัตโนมัติเมื่อมีการติดตั้งแพ็คเกจด้วย “npm” จะเก็บบันทึกการขึ้นต่อกันและการขึ้นต่อกันย่อยที่แพ็คเกจขึ้นอยู่กับเวอร์ชัน หากแพ็คเกจถูกติดตั้งด้วย “yarn” ดังนั้นชื่อไฟล์นี้คือ “ เส้นด้าย.ล็อค '.
วิธีแก้ไข: ลบโฟลเดอร์ 'node_modules' และไฟล์ 'package-lock.json'
วิธีแก้ไขข้อผิดพลาดที่พบคือการลบโฟลเดอร์ 'node_modules' และไฟล์ 'package-lock.json/yarn.lock' และติดตั้งแพ็คเกจที่ต้องการอีกครั้ง
ในลินุกซ์ , โฟลเดอร์และไฟล์ที่ระบุข้างต้นสามารถลบได้โดยใช้คำสั่งด้านล่าง “ RM (ลบ)” คำสั่ง:
RM - - แพ็คเกจ rf node_modules - - ล็อค. json.json //ลบโฟลเดอร์และไฟล์LS // แสดงไฟล์และไดเร็กทอรี
ในคำสั่งข้างต้น “ -ร ” ตั้งค่าสถานะลบโฟลเดอร์ที่ระบุ “ ซ้ำ ๆ ” รวมถึงไดเรกทอรีย่อยทั้งหมดและ “ ฉ ” ธงบอกล่ามให้ทำงานนี้ “ เฉียบพลัน ”:
ผลลัพธ์แสดงให้เห็นว่าโฟลเดอร์ “node_modules” และไฟล์ “package-lock.json/yarn.lock” ได้ถูกลบออกจากโครงการ Node.js ปัจจุบันอย่างสมบูรณ์:
ในวินโดวส์ ผู้ใช้สามารถลบโฟลเดอร์ “node_modules” และไฟล์ “package-lock.json/yarn.lock” ได้เพียงแค่กดปุ่ม “ ลบ ” หรือใช้ตัวเลือก “ลบ” จากเมนูแบบเลื่อนลง
นั่นคือทั้งหมดที่เกี่ยวกับการแก้ไขข้อผิดพลาด “ไม่พบโมดูล” ใน Node.js
บทสรุป
เพื่อแก้ไขปัญหา “ ไม่พบโมดูล ” ข้อผิดพลาด “ติดตั้งโมดูลที่ต้องการ” “ระบุเส้นทางที่ถูกต้อง” “พิมพ์ตัวพิมพ์ที่ถูกต้องในวิธี “require()” และ “พิมพ์นามสกุลไฟล์ที่ถูกต้อง” นอกจากนี้ยังสามารถแก้ไขได้ด้วยการ 'ติดตั้งโมดูลในเครื่อง' ในโครงการ Node.js หากข้อผิดพลาดยังคงอยู่ ให้ลบโฟลเดอร์ “node_modules” ไฟล์ “package-lock.json” ออก จากนั้นติดตั้งโมดูลที่จำเป็นอีกครั้งผ่าน “npm/yarn” โพสต์นี้ได้กล่าวถึงสาเหตุที่เป็นไปได้ทั้งหมดพร้อมกับวิธีแก้ปัญหาเพื่อแก้ไขข้อผิดพลาด “ไม่พบโมดูล” โดยใช้ Node.js