Comment résoudre l'erreur « l'erreur de référence requise n'est pas définie » ?

Comment Resoudre L Erreur L Erreur De Reference Requise N Est Pas Definie



Node.js n'est rien en soi, son existence dépend des modules et méthodes fournis par chaque module. Pour travailler avec ces modules, le développeur doit d'abord l'installer, puis l'importer dans le fichier en cours de travail. Pour importer des modules, il existe deux manières spécifiquement liées à la version de JavaScript que le développeur utilise actuellement ou sur laquelle le propriétaire de l'application souhaite construire. Lors de l'importation, il est possible de rencontrer plusieurs erreurs et l'erreur la plus courante et la plus courante liée au ' exiger() 'La méthode est en cours de description et de résolution.

Ce guide explique la procédure de résolution des erreurs « ReferenceError : exiger n'est pas défini ».

Comment résoudre l'erreur « ReferenceError : exiger n'est pas défini » ?

Pour importer des modules externes ou intégrés dans le projet, deux approches sont utilisées, celles-ci utilisent le « exiger() ' méthode ou ' importer ' mot-clé. Le mentionné « ReferenceError : require n'est pas défini ' est rencontré lorsqu'un utilisateur essaie d'utiliser le ' exiger() ' méthode à l'intérieur du ' Module ES ' portée. L'erreur discutée apparaît comme ceci sur la console dans node.js lorsque le code indiqué ci-dessous est exécuté :









Les raisons de l'apparition de l'erreur « Résoudre « ReferenceError : exiger n'est pas défini » et leurs solutions correspondantes sont expliquées dans les sections ci-dessous.



Raison 1 : le type d'application est défini sur Module

Si votre application affiche l'erreur mentionnée, la solution la plus simple et la plus durable est la modification du «  package.json ' déposer. Recherchez la paire clé/valeur ayant le « clé ' de ' taper ' et la valeur attribuée de ' module ». Cela rend l'environnement de l'ensemble de l'application modulaire, ce qui évite l'utilisation d'anciens ' CommonJS » modules et méthodes. La représentation visuelle de cette paire clé/valeur apparaît comme ceci :





'taper' : 'module' ,

Solution : supprimez la touche « Type »

La solution est la suppression du « taper « clé et valeur attribuée du projet node.js » package.json ' déposer. La suppression du fichier « package.json » exploite la portée du module ES6 et rend la méthode « require() » réalisable. Désormais, lorsque le même code sera à nouveau exécuté, aucune erreur ne se produira.



Raison 2 : Travailler en « .mjs » » Déposer

Le ' .mjs » est un fichier de code source JavaScript du module. Il contient du code à l'intérieur de l'environnement du module et non dans ' CommonJS ' qui divise le code en plusieurs fichiers pour une meilleure gestion. Le ' exiger() ' La méthode se trouve sous le ' CommonJS ». C'est pourquoi la méthode « require » deviendra indéfinie lorsqu'elle sera utilisée dans le fichier « .mjs ' extension de fichier et conduit à l'apparition de l'erreur mentionnée :

Solution : convertissez l'extension de fichier en « .cjs »

Tout comme le code source JavaScript modulaire, l'extension de fichier « .mjs ' est disponible. La prolongation de « .cjs » est prévu pour « CommonJS » modules et propriétés. Ce fichier n'accepte pas ' modulaire « des forfaits comme » importer ' mais fonctionne bien avec les versions ES5. Dans notre cas, la modification de l’extension du fichier résoudra le problème lié au « exiger() ' méthode:

Approche alternative : utilisez la déclaration ES6 « import/export »

Le ' exiger() » est définie et fournie par la méthode « CommonJs » et est acceptable jusqu'à la version JavaScript d'ES5 (ECMAScript 5). Il a été publié en 2009 et est désormais devenu obsolète car de nombreux modules récents ne le prennent pas en charge ou ne fonctionnent pas correctement dans ES5. Tout comme le ' exiger() « La méthode est désormais remplacée par une méthode plus optimisée et plus simple » importer » déclarations. Le fonctionnement des deux entités est le même, mais « l'importation » a un avantage supérieur en raison de la dernière technologie et de la plus grande facilité qu'elle offre.

Pour les modules par défaut ou externes

Dans la démonstration ci-dessous, l'instruction « import » est utilisée comme alternative à la méthode « require() » pour importer le module par défaut ou tiers :

importer readlineObj depuis 'lire la ligne' ;

console. enregistrer ( readlineObj ) ;

Après compilation du code mentionné, la même tâche qui doit être effectuée par le « exiger() ' est exécutée et la méthode ' ReferenceError : require n'est pas défini ' n'apparaîtra pas non plus :

Pour les modules construits sur mesure

Le ' importer ' L'instruction est également utilisée pour « importer » les modules ou fonctions personnalisés à partir d'autres fichiers résidant dans le même répertoire ou dans des répertoires différents. Les fonctions ou variables d'autres fichiers sont exportées à l'aide du ' exporter ' mot-clé. Par exemple, visitez l'extrait de code ci-dessous dans lequel une seule fonction et une variable aléatoire vont être importées depuis un autre fichier :

app.js

const variable d'exportation = « Ce guide est fourni par Linuxhint ! » ;

const fonctionexport = ( ) => {

console. enregistrer ( variable d'exportation ) ;

} ;

exporter défaut fonctionexport ;

exporter {

variable d'exportation

} ;

L'explication du bloc de code ci-dessus est la suivante :

  • Premièrement, la variable aléatoire nommée « variable d'exportation ' est défini et la fonction flèche ' fonctionexport() ' est créé et imprime le ' exportVariable ' créé sur la console.
  • Les mots-clés de « exportation par défaut ' et ' exporter » sont utilisés pour exporter le « fonctionexport() ' et ' variable d'exportation ' entités du fichier.
  • Lorsque ce fichier est importé, la fonction et les variables exportées deviennent disponibles pour y être utilisées.

index.js

Le « index.js » est notre fichier secondaire dans lequel la fonction et la variable exportées vont être importées et utilisées, il contient le code indiqué ci-dessous :

importer fonction d'exportation, { variable d'exportation } depuis './app.js' ;

fonctionexport ( ) ;

console. enregistrer ( variable d'exportation ) ;

Dans le code ci-dessus, le ' importer ' L'instruction est utilisée pour importer la valeur par défaut ' fonctionexport() ' et la variable ' variable d'exportation ' du ' app.js ' déposer.

Ensuite, les deux entités importées sont invoquées et affichées sur la console à des fins de vérification.

Maintenant, exécutez le principal ' index.js 'fichier en utilisant la commande indiquée ci-dessous :

indice de nœud. js

La sortie générée montre que les éléments importés fonctionnent correctement sans provoquer le message « ReferenceError : require n'est pas défini ' erreur:

Il s’agit de résoudre l’erreur spécifiée.

Conclusion

Pour résoudre le « ReferenceError : require n'est pas défini ' erreur, supprimez le ' taper ' clé ayant la valeur de ' module ' du ' package.json ' ou modifiez l'extension du fichier actuellement en cours de travail en ' .cjs ». Si vous souhaitez travailler dans la version modulaire ES6, au lieu d'utiliser le ' exiger() ' utilisez la méthode ' importer ' Les déclarations approchent. Ce guide a expliqué les correctifs possibles pour résoudre le problème « ReferenceError : require n'est pas défini 'erreur' dans node.js