Cuando trabajas con archivos, necesitas rutas. Y aquí es donde muchos desarrolladores caen en una trampa:
Esto puede funcionar en tu máquina... hasta que no funciona. ¿Y si carpeta ya tiene una / al final? ¿Y si tu app se ejecuta en Windows, donde las rutas usan \ en vez de /?
Concatenar rutas a mano es como caminar por un campo de minas. Para eso Node.js incluye el módulo path — una herramienta que construye rutas correctas sin importar el sistema operativo.
path.join toma fragmentos de ruta y los une correctamente:
No importa si algún fragmento tiene barras de más o de menos — path.join lo normaliza todo. Es como un GPS que siempre encuentra el camino correcto.
Hay un problema sutil con las rutas relativas. Cuando ejecutas:
Las rutas relativas se resuelven desde donde ejecutas el comando, no desde donde está el archivo. Eso puede dar sorpresas.
__dirname resuelve esto. Es una variable especial de Node que siempre contiene la carpeta donde está el archivo actual:
Con __dirname + path.join, tus rutas funcionan sin importar desde dónde ejecutes el script.
Cada función resuelve un problema específico. No necesitas memorizarlas todas ahora — las irás usando según las necesites.
Esta es una duda común:
path.join simplemente une fragmentos tal cualpath.resolve construye una ruta absoluta desde la raízUsa path.join con __dirname para la mayoría de casos. Es el patrón más claro y predecible.
path (con require("node:path"))__dirname como punto de partidapath.join que apunte a un archivo dentro de una subcarpetanode index.js en la terminalUna ruta mal construida causa bugs que aparecen solo en producción, cuando ya es tarde. El módulo path los previene antes de que ocurran.