Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

269
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!