Cómo utilizar __dirname en Node.js

Introducción
__dirnamees una variable de entorno que le indica la ruta absoluta del directorio que contiene el archivo que se está ejecutando actualmente.
En este artículo, explorará cómo implementarlo __dirnameen su proyecto Node.js.
Implemente sus aplicaciones Node desde GitHub con la plataforma de aplicaciones DigitalOcean . Deje que DigitalOcean se concentre en escalar su aplicación.
Prerrequisitos
Para completar este tutorial, necesitarás:
- Conocimientos generales sobre Node.js. Para obtener más información sobre Node.js, consulta nuestra serie Cómo codificar en Node.js.
Este tutorial fue verificado con Node.js v17.2.0 y npmv8.2.0.
Paso 1: Configuración del proyecto
Este tutorial utilizará la siguiente estructura de directorio de muestra para explorar cómo __dirnamefunciona:
dirname-example ├──index.js ├──public ├──src │ ├──helpers.js │ └──api │ └──controller.js ├──cronjobs │ └──hello.js └──package.json
Puedes comenzar creando un dirname-exampledirectorio en tu terminal:
- mkdir dirname-example
Vaya al directorio del proyecto:
- cd dirname-example
Inicialícelo como un proyecto Node.js:
- npm init --yes
Ahora, crearás los directorios y archivos con los que experimentarás.
Paso 2 — Uso__dirname
Puede utilizarlo __dirnamepara comprobar en qué directorios se encuentran sus archivos.
Crear y editar controller.jsen el apisubdirectorio del srcdirectorio:
fuente/api/controller.js
console.log(__dirname) // "/Users/Sam/dirname-example/src/api"console.log(process.cwd()) // "/Users/Sam/dirname-example"
Luego, ejecute el script:
- node src/api/controller.js
Crear y editar hello.jsen el cronjobsdirectorio:
trabajos cron/hola.js
console.log(__dirname) // "/Users/Sam/dirname-example/cronjobs"console.log(process.cwd()) // "/Users/Sam/dirname-example"
Luego, ejecute el script:
- node cronjobs/hello.js
Tenga en cuenta que __dirnametiene un valor diferente según el archivo que extraiga mediante la consola. El process.cwd()método también devuelve un valor, pero en su lugar devuelve el directorio del proyecto. La __dirnamevariable siempre devuelve la ruta absoluta de donde se encuentran sus archivos.
Paso 3: Trabajar con directorios
En esta sección, explorará cómo usar __dirnamepara crear nuevos directorios, señalarlos y agregar nuevos archivos.
Creando nuevos directorios
Para crear un nuevo directorio en su index.jsarchivo, inserte __dirnamecomo primer argumento path.join()y el nombre del nuevo directorio como segundo:
índice.js
const fs = require('fs');const path = require('path');const dirPath = path.join(__dirname, '/pictures');fs.mkdirSync(dirPath);
Ahora ha creado un nuevo directorio, picturesdespués de llamar al mdirSync()método, que contiene __dirnamecomo ruta absoluta.
Apuntando a directorios
Otra característica única es su capacidad de señalar directorios. En su index.jsarchivo, declare una variable y pase el valor de __dirnamecomo primer argumento en path.join(), y su directorio que contiene archivos estáticos como segundo:
índice.js
express.static(path.join(__dirname, '/public'));
Aquí, le estás indicando a Node.js que use __dirnamepara apuntar al publicdirectorio que contiene archivos estáticos.
Agregar archivos a un directorio
También puede agregar archivos a un directorio existente. En su index.jsarchivo, declare una variable e incluya __dirnamecomo primer argumento y el archivo que desea agregar como segundo:
índice.js
const fs = require('fs');const path = require('path');const filePath = path.join(__dirname, '/pictures');fs.openSync(filePath, 'hello.jpeg');
Al usar este openSync()método se agregará el archivo si no existe dentro de su directorio.
Conclusión
Node.js ofrece una forma de crear y señalar directorios, y de agregar archivos a directorios existentes con una variable de entorno modular.
Para obtener más información, consulte la documentación de Node.js para__dirname y el tutorial sobre el uso __dirnameen el marco Express.js .

Deja una respuesta