Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Cómo Node.js Carga los Módulos | Sección
Fundamentos de Node.js

bookCómo Node.js Carga los Módulos

Desliza para mostrar el menú

Para trabajar de manera efectiva con módulos en Node.js, es necesario comprender cómo Node.js los encuentra y los carga. Este proceso se denomina resolución de módulos. Cuando se utiliza la función require para importar un módulo, Node.js sigue un algoritmo específico para localizar el archivo o paquete solicitado. El proceso de resolución tiene en cuenta las extensiones de archivo, la estructura de carpetas e incluso la presencia de archivos especiales como package.json.

Node.js primero verifica si el módulo requerido es un módulo nativo, como fs o http. Si no es un módulo nativo, Node.js trata la cadena que se pasa a require como una ruta relativa (que comienza con ./ o ../), una ruta absoluta o un nombre de módulo. Para rutas relativas y absolutas, Node.js intenta resolver el archivo comprobando lo siguiente en orden:

  • Si existe el archivo exacto con el nombre proporcionado;
  • Si existe el archivo agregando la extensión .js;
  • Si existe el archivo agregando la extensión .json;
  • Si existe el archivo agregando la extensión .node.

Si la ruta apunta a un directorio, Node.js buscará un archivo package.json dentro de ese directorio. Si lo encuentra, utilizará el campo main para determinar qué archivo cargar. Si no hay un package.json o no existe el campo main, Node.js buscará un archivo index.js, index.json o index.node dentro del directorio.

Si se requiere un módulo por nombre (no por ruta), Node.js lo buscará en las carpetas node_modules, comenzando desde el directorio actual y luego subiendo por la jerarquía de directorios hasta llegar a la raíz.

app.js

app.js

copy
Note
Nota

Node.js almacena en caché los módulos después de la primera vez que se cargan. Esto significa que si se requiere el mismo módulo varias veces, solo se ejecuta una vez; las llamadas posteriores devuelven el mismo objeto almacenado en caché. Esto mejora el rendimiento y la consistencia en toda la aplicación.

question-icon

Completa los espacios en blanco:
Cuando usas require('./moduleName') en Node.js, el algoritmo de resolución de módulos verifica en el siguiente orden:

  1. Si existe un archivo llamado moduleName;
  2. Si existe un archivo llamado moduleName.___1___;
  3. Si existe un archivo llamado moduleName.___2___;
  4. Si existe un archivo llamado moduleName.___3___.

Haz clic o arrastra y suelta elementos y completa los espacios

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 11

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 1. Capítulo 11
some-alt