Πώς να επιλύσετε το σφάλμα 'Referenceerror need is not defined';

Pos Na Epilysete To Sphalma Referenceerror Need Is Not Defined



Το Node.js δεν είναι τίποτα από μόνο του, η ύπαρξή του εξαρτάται από modules και μεθόδους που παρέχονται από κάθε module. Για να εργαστείτε με αυτές τις λειτουργικές μονάδες, ο προγραμματιστής πρέπει πρώτα να το εγκαταστήσει και στη συνέχεια να το εισαγάγει μέσα στο τρέχον αρχείο που λειτουργεί. Για την εισαγωγή λειτουργικών μονάδων, υπάρχουν δύο τρόποι που συνδέονται ειδικά με την έκδοση JavaScript που χρησιμοποιεί τώρα ο προγραμματιστής ή με τους οποίους θέλει να δημιουργήσει ο κάτοχος της εφαρμογής. Κατά την εισαγωγή, υπάρχει η πιθανότητα να αντιμετωπίσετε πολλά σφάλματα και το ένα δημοφιλές και πιο συνηθισμένο σφάλμα που σχετίζεται με το ' απαιτώ() Η μέθοδος περιγράφεται και επιλύεται.

Αυτός ο οδηγός εξηγεί τη διαδικασία για την επίλυση σφαλμάτων 'ReferenceError: η απαίτηση δεν ορίζεται'.

Πώς να επιλύσετε το σφάλμα 'ReferenceError: η απαίτηση δεν ορίζεται';

Για την εισαγωγή εξωτερικών ή ενσωματωμένων μονάδων στο έργο χρησιμοποιούνται δύο προσεγγίσεις, αυτές χρησιμοποιούν το ' απαιτώ() 'μέθοδος ή ' εισαγωγή » λέξη-κλειδί. Το αναφερόμενο « Σφάλμα αναφοράς: η απαίτηση δεν έχει οριστεί ' αντιμετωπίζεται όταν ένας χρήστης προσπαθεί να χρησιμοποιήσει το ' απαιτώ() 'μέθοδος μέσα στο ' Μονάδα ES ' πεδίο εφαρμογής. Το σφάλμα που συζητήθηκε εμφανίζεται ως εξής στην κονσόλα στο node.js όταν εκτελείται ο παρακάτω κώδικας:









Οι λόγοι για την εμφάνιση του σφάλματος 'Επίλυση 'Σφάλμα αναφοράς: η απαίτηση δεν ορίζεται' και οι αντίστοιχες λύσεις εξηγούνται στις παρακάτω ενότητες.



Λόγος 1: Ο τύπος της εφαρμογής έχει οριστεί σε ενότητα

Εάν η εφαρμογή σας εμφανίζει το αναφερόμενο σφάλμα, η πιο εύκολη και μακροχρόνια λύση είναι η τροποποίηση του ' πακέτο.json ' αρχείο. Αναζήτηση για το ζεύγος κλειδιού/τιμής που έχει το « κλειδί 'του ' τύπος ' και την εκχωρημένη τιμή του ' μονάδα μέτρησης '. Αυτό κάνει το περιβάλλον ολόκληρης της εφαρμογής αρθρωτό, το οποίο αποτρέπει τη χρήση παλιών ' CommonJS Ενότητες και μέθοδοι. Η οπτική αναπαράσταση αυτού του ζεύγους κλειδιού/τιμής εμφανίζεται ως εξής:





'τύπος' : 'μονάδα μέτρησης' ,

Λύση: Αφαιρέστε το πλήκτρο «Τύπος».

Η λύση είναι η κατάργηση του « τύπος ' κλειδί και εκχωρημένη τιμή από το έργο node.js ' πακέτο.json ' αρχείο. Η κατάργηση από το αρχείο 'package.json' εκμεταλλεύεται το εύρος της λειτουργικής μονάδας ES6 και καθιστά εφαρμόσιμη τη μέθοδο 'require(). Τώρα, όταν εκτελεστεί ξανά ο ίδιος κώδικας, δεν θα εμφανιστεί σφάλμα.



Λόγος 2: Εργασία στο “.mjs Αρχείο

Ο ' .mjs ” είναι ένα αρχείο πηγαίου κώδικα JavaScript Module. Περιέχει κώδικα μέσα στο περιβάλλον της μονάδας όχι σε ' CommonJS ” που χωρίζει τον κώδικα σε πολλά αρχεία για καλύτερη διαχείριση. Ο ' απαιτώ() 'η μέθοδος βρίσκεται κάτω από το ' CommonJS '. Αυτός είναι ο λόγος για τον οποίο η μέθοδος 'απαιτείται' θα γίνει απροσδιόριστη όταν χρησιμοποιείται μέσα στο ' .mjs ” επέκταση αρχείου και οδηγεί στην εμφάνιση του αναφερόμενου σφάλματος:

Λύση: Μετατρέψτε την επέκταση αρχείου σε '.cjs'

Ακριβώς όπως ο αρθρωτός πηγαίος κώδικας JavaScript, η επέκταση αρχείου του ' .mjs ' είναι διαθέσιμο. Η επέκταση του « .cjs 'Προβλέπεται για ' CommonJS ' ενότητες και ιδιότητες. Αυτό το αρχείο δεν δέχεται ' αρθρωτό “πακέτα όπως “ εισαγωγή αλλά λειτουργεί καλά με τις εκδόσεις ES5. Στην περίπτωσή μας, η αλλαγή της επέκτασης αρχείου θα επιλύσει το πρόβλημα που σχετίζεται με το ' απαιτώ() μέθοδος:

Εναλλακτική προσέγγιση: Χρησιμοποιήστε τη δήλωση ES6 'εισαγωγή/εξαγωγή'

Ο ' απαιτώ() ' η μέθοδος ορίζεται και παρέχεται από το ' CommonJs ” και είναι αποδεκτό μέχρι την έκδοση JavaScript του ES5 (ECMAScript 5). Δημοσιεύτηκε το 2009 και τώρα έχει καταστεί απαρχαιωμένο καθώς πολλές πιο πρόσφατες μονάδες δεν το υποστηρίζουν ή δεν λειτουργούν σωστά στο ES5. Ακριβώς όπως το ' απαιτώ() 'Η μέθοδος αντικαθίσταται τώρα με πιο βελτιστοποιημένη και εύκολη' εισαγωγή », δηλώσεις. Η λειτουργία και των δύο οντοτήτων είναι η ίδια, αλλά η 'εισαγωγή' έχει ένα ανώτερο πλεονέκτημα λόγω της τελευταίας τεχνολογίας και της μεγαλύτερης ευκολίας που παρέχει.

Για προεπιλεγμένες ή εξωτερικές μονάδες

Στην παρακάτω επίδειξη, η δήλωση 'import' χρησιμοποιείται ως εναλλακτική στη μέθοδο 'require()' για την εισαγωγή της προεπιλεγμένης λειτουργικής μονάδας ή της λειτουργικής μονάδας τρίτου κατασκευαστή:

εισαγωγή readlineObj από 'γραμμή ανάγνωσης' ;

κονσόλα. κούτσουρο ( readlineObj ) ;

Μετά τη σύνταξη του αναφερόμενου κώδικα, η ίδια εργασία που πρέπει να γίνει από το « απαιτώ() ' εκτελείται η μέθοδος και η ' Σφάλμα αναφοράς: η απαίτηση δεν έχει οριστεί Το ” δεν θα εμφανιστεί επίσης:

Για προσαρμοσμένες ενότητες

Ο ' εισαγωγή Η δήλωση χρησιμοποιείται επίσης για την 'εισαγωγή' των προσαρμοσμένων λειτουργιών ή λειτουργιών από άλλα αρχεία που βρίσκονται στον ίδιο ή διαφορετικούς καταλόγους. Οι συναρτήσεις ή οι μεταβλητές από άλλα αρχεία εξάγονται χρησιμοποιώντας το ' εξαγωγή » λέξη-κλειδί. Για παράδειγμα, επισκεφτείτε το παρακάτω απόσπασμα κώδικα στο οποίο μια μεμονωμένη συνάρτηση και μια τυχαία μεταβλητή πρόκειται να εισαχθούν από άλλο αρχείο:

app.js

συνθ exportΜεταβλητή = 'Αυτός ο Οδηγός παρέχεται από το Linuxhint!' ;

συνθ Λειτουργία εξαγωγής = ( ) => {

κονσόλα. κούτσουρο ( exportΜεταβλητή ) ;

} ;

εξαγωγή Προκαθορισμένο Λειτουργία εξαγωγής ;

εξαγωγή {

exportΜεταβλητή

} ;

Η εξήγηση του παραπάνω μπλοκ κώδικα είναι η εξής:

  • Πρώτα, η τυχαία μεταβλητή με το όνομα ' exportΜεταβλητή ' ορίζεται και η συνάρτηση βέλους ' ExportFunction() ' δημιουργείται που εκτυπώνει το δημιουργημένο 'exportVariable' πάνω από την κονσόλα.
  • Οι λέξεις-κλειδιά του « προεπιλογή εξαγωγής ' και ' εξαγωγή ' χρησιμοποιούνται για την εξαγωγή του ' ExportFunction() ' και ' exportΜεταβλητή ” οντότητες από το αρχείο.
  • Όταν αυτό το αρχείο εισάγεται, η εξαγόμενη συνάρτηση και οι μεταβλητές γίνονται διαθέσιμες για χρήση εκεί.

index.js

Το 'index.js' είναι το δευτερεύον αρχείο μας στο οποίο πρόκειται να εισαχθούν και να χρησιμοποιηθούν η εξαγόμενη συνάρτηση και η μεταβλητή, περιέχει τον παρακάτω κώδικα:

εισαγωγή Λειτουργία εξαγωγής, { exportΜεταβλητή } από './app.js' ;

Λειτουργία εξαγωγής ( ) ;

κονσόλα. κούτσουρο ( exportΜεταβλητή ) ;

Στον παραπάνω κώδικα, το « εισαγωγή 'Η δήλωση χρησιμοποιείται για την εισαγωγή της προεπιλογής' ExportFunction() 'και η μεταβλητή' exportΜεταβλητή ' από το ' app.js ' αρχείο.

Στη συνέχεια, καλούνται και οι δύο εισαγόμενες οντότητες και εμφανίζονται στην κονσόλα για λόγους επαλήθευσης.

Τώρα, εκτελέστε το κύριο ' index.js ' αρχείο χρησιμοποιώντας την παρακάτω εντολή:

ευρετήριο κόμβου. js

Η παραγόμενη έξοδος δείχνει ότι τα εισαγόμενα στοιχεία λειτουργούν σωστά χωρίς να προκαλούν το ' Σφάλμα αναφοράς: η απαίτηση δεν έχει οριστεί ' λάθος:

Αυτό αφορά την επίλυση του καθορισμένου σφάλματος.

συμπέρασμα

Για την επίλυση του « Σφάλμα αναφοράς: η απαίτηση δεν έχει οριστεί ' σφάλμα, αφαιρέστε το ' τύπος 'κλειδί με τιμή ' μονάδα μέτρησης ' από το ' πακέτο.json ' ή τροποποιήστε την τρέχουσα επέκταση αρχείου σε ' .cjs '. Σε περίπτωση που επιθυμείτε να εργαστείτε στην αρθρωτή έκδοση ES6, αντί να χρησιμοποιήσετε το ' απαιτώ() ' μέθοδος χρησιμοποιήστε την ' εισαγωγή 'προσέγγιση δηλώσεων. Αυτός ο οδηγός έχει εξηγήσει τις πιθανές επιδιορθώσεις για την επίλυση του ' Σφάλμα αναφοράς: η απαίτηση δεν έχει οριστεί 'σφάλμα' στο node.js