Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

277
Vistas
Error: ENOTDIR: no es un directorio, scandir './commands/setWelcome.js'

Estoy tratando de crear un bot de moderación y encuentro un error que muestra que no tengo comandos y establezco el archivo de bienvenida en mi proyecto, incluso cuando los tengo. Aquí está el error completo:

 node:internal/fs/utils:344 throw err; ^ Error: ENOTDIR: not a directory, scandir './commands/setWelcome.js' at Object.readdirSync (node:fs:1390:3) at Object.<anonymous> (/home/runner/Him/index.js:12:26) at Module._compile (node:internal/modules/cjs/loader:1095:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10) at Module.load (node:internal/modules/cjs/loader:975:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:17:47 { errno: -20, syscall: 'scandir', code: 'ENOTDIR', path: './commands/setWelcome.js' }

Aquí está mi código en index.js -

 const fs = require('fs'); const Discord = require('discord.js'); const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] }); client.commands = new Discord.Collection(); const commandFolders = fs.readdirSync('./commands'); for (const folder of commandFolders) { const commandFiles = fs.readdirSync(`./commands/${folder}`).filter(file => file.endsWith('.js')); for (const file of commandFiles) { const command = require(`./commands/${folder}/${file}`); client.commands.set(command.name, command); } } client.once('ready', (c) => { console.log(`Logged in as ${c.user.tag}`); }); client.on('messageCreate', message => { //My command handler code here }); client.login(process.env.TOKEN);

y mi archivo setWelcome.js está completamente vacío

Aquí está mi directorio de proyectos:

 index.js//file commands//folder and then inside commands setWelcome.js //file

y sí, tengo archivos package.json y package-lock.json. Estaría muy agradecido a cualquiera que me ayude, ¡Gracias! por cierto... estoy usando repl.it para este proyecto

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que está tratando de recorrer su carpeta de dos maneras contradictorias (está usando dos bucles for anidados). Esto tendría sentido si la carpeta de commands contuviera subcarpetas que contuvieran los archivos a los que desea dirigirse. Sin embargo, dado que sus archivos de comandos están directamente dentro de su carpeta de commands , un bucle será suficiente.

La función readdirSync espera una ruta a un directorio y devuelve una lista de su contenido como se describe en la documentación de fs , pero ./commands/${folder} ya es una ruta a un archivo dentro de la carpeta de commands . Lo siguiente debería ayudar:

 \\create a list of files in command directory that end with .js const commandFiles = fs.readdirSync(`./commands/`).filter(file => file.endsWith('.js')); \\loop over items in the list for (const file of commandFiles) { const command = require(`./commands/${file}`); client.commands.set(command.name, command); }

Nota: Tal vez se deba omitir la barra invertida final en ./commands/ . Por favor comente si es así.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda