Cómo resolver el error 'el requisito no está definido' en JavaScript/Node.js

Como Resolver El Error El Requisito No Esta Definido En Javascript Node Js



Durante el proceso de programación, podemos encontrarnos con diferentes errores, como errores de sintaxis o errores de tiempo de ejecución. Un error de referencia es un error de tiempo de ejecución. Se produce un error de referencia cuando se ha hecho referencia a una variable no inicializada o a una variable que no existe en el alcance actual. El error 'requerir no está definido' es un error de referencia que indica que hay un problema con la palabra clave 'requerir'.

Este artículo analiza en detalle los motivos por los que ocurre este error y las formas en que podemos solucionarlo.

¿Cómo resolver el error 'el requisito no está definido' en JavaScript/Node.js?

El error de referencia 'no se encuentra el requisito' ocurre cuando la función require() se encuentra en el archivo JavaScript que se suponía que debía ejecutarse en el navegador web en lugar del entorno Node.js.







¿Qué es una función require()?

La función require() tiene un alcance global y está proporcionada por Node.js. Carga y ejecuta módulos en la aplicación Node.js. Muchos navegadores no son compatibles con Node.js, por lo que la funcionalidad require() no está disponible en ellos.



¿Cuándo ocurre este error?

Este error suele ocurrir cuando se utiliza JavaScript en ambos navegadores junto con Node.js. El error puede ocurrir de tres maneras:



  • Cuando la función require() se utiliza en el entorno del navegador.
  • Cuando se usa la función require() en Node.js y el archivo package.json, el tipo se establece en 'módulo'
  • Cuando se usa la función require() en Node.js, los archivos tienen una extensión de .mjs.

Usando la sintaxis constante ' miArchivo = requerir('./mi-archivo') ”en un entorno basado en web arrojará un error similar a este:





Analicemos diferentes soluciones para resolver este error.



Caso 1: Error en el entorno del navegador

La función require() funciona específicamente en Node.js. La mayoría de los navegadores son compatibles con Node.js, por lo que no admiten la funcionalidad require(). El módulo de importación y exportación del módulo ES6 resuelve el error 'El error de referencia requerido no está definido'. Aquí hay un ejemplo de un código que muestra cómo se puede hacer:

TIPO DE DOCUMENTO html >

< cuerpo >

 

 

  < tipo de guión = 'módulo' src = 'index.js' > guion >

  < tipo de guión = 'módulo' src = 'archivo.js' > guion >

cuerpo >

HTML >

Index.js se carga primero para que sus funcionalidades se puedan utilizar en file.js.

archivo index.js

El index.js define una función producto y variables xey:

producto de función de exportación ( a, b ) {

  devolver a * b ;

}

exportar constante = 10 ;

exportar constante y = 'TAYLOR'

archivo.js

Las funcionalidades del archivo index.js se pueden utilizar en el otro archivo js denominado file.js. Archivo.js se ve así:

importar { producto, x, y } de './index.js' ;

consola. registro ( producto ( 10 , 5 ) ) ; // mostrará 50

consola. registro ( X ) ; // mostrará 10

consola. registro ( y ) ; // mostrará 'TAYLOR'

Producción

El siguiente resultado muestra cómo se puede eliminar el error 'el requisito no está definido' en un entorno de navegador utilizando el módulo de importación y exportación de ES6:

Caso 2: Error al trabajar en Node.js

En el archivo package.json, al configurar la propiedad de tipo con el módulo de valor se obtiene este error. También puede suceder si se utiliza la función require() en el archivo con extensión .mjs.

Este error se puede eliminar cuando elimina la propiedad de tipo establecida en el módulo y cualquier archivo con una extensión .mjs pasa a llamarse .js.

//package.json

{

  // elimina la propiedad de tipo establecida en el módulo para usar require()

  'tipo' : 'módulo' ,

}

archivo index.js

El archivo index.js define una función 'producto' y variables xey con el alcance de la variable. Así es como se verá el archivo index.js:

producto funcional ( a, b ) {

    devolver a * b ;

  }

global. X = 13 ;

global. y = 'rápido' ;

módulo. exportaciones = {

producto,

} ;

archivo.js

Toma la función producto del archivo JS index.js utilizando la palabra clave require(). El archivo file.js se verá así:

constante { producto } = requerir ( './index.js' ) ;

consola. registro ( producto ( 10 , 9 ) ) ; // mostrará 90

consola. registro ( X ) ; // mostrará 13

consola. registro ( y ) ; // mostrará 'rápido'

Producción

El resultado muestra cómo se puede resolver el error 'No se encuentra el requisito' eliminando la propiedad de tipo establecida en módulo del archivo package.json:

Cosas para recordar

  • La sintaxis del módulo ES6 para importar un módulo requiere ser específico acerca de la extensión del archivo del módulo. JavaScript debe conocer el tipo de archivo para su correcto procesamiento.
  • El módulo ES6 no se puede utilizar simultáneamente con la función require().

Conclusión

El uso de la sintaxis del módulo ES6 en el navegador resuelve el problema 'el requisito no está definido' o, de lo contrario, el fragmento de código debe ejecutarse en Node.js. El error ocurre cuando se usa la función require() en un navegador. Este artículo analiza cómo el problema 'el requisito no está definido' se puede resolver con un ejemplo.