Cómo utilizar __dirname en Node.js

Introducción
__dirname
es 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 __dirname
en 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 npm
v8.2.0.
Paso 1: Configuración del proyecto
Este tutorial utilizará la siguiente estructura de directorio de muestra para explorar cómo __dirname
funciona:
dirname-example ├──index.js ├──public ├──src │ ├──helpers.js │ └──api │ └──controller.js ├──cronjobs │ └──hello.js └──package.json
Puedes comenzar creando un dirname-example
directorio 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 __dirname
para comprobar en qué directorios se encuentran sus archivos.
Crear y editar controller.js
en el api
subdirectorio del src
directorio:
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.js
en el cronjobs
directorio:
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 __dirname
tiene 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 __dirname
variable siempre devuelve la ruta absoluta de donde se encuentran sus archivos.
Paso 3: Trabajar con directorios
En esta sección, explorará cómo usar __dirname
para crear nuevos directorios, señalarlos y agregar nuevos archivos.
Creando nuevos directorios
Para crear un nuevo directorio en su index.js
archivo, inserte __dirname
como 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, pictures
después de llamar al mdirSync()
método, que contiene __dirname
como ruta absoluta.
Apuntando a directorios
Otra característica única es su capacidad de señalar directorios. En su index.js
archivo, declare una variable y pase el valor de __dirname
como 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 __dirname
para apuntar al public
directorio que contiene archivos estáticos.
Agregar archivos a un directorio
También puede agregar archivos a un directorio existente. En su index.js
archivo, declare una variable e incluya __dirname
como 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 __dirname
en el marco Express.js .
Deja una respuesta