Estoy tratando de hacer que mi programa se pueda arrastrar y soltar. Simplemente suelte un archivo en el directorio de módulos y deje que el programa intente resolverlo. Así que no puedo estar seguro de cuántos o el nombre de cada módulo. Para fines de prueba, solo tengo dos rollAD6 y secondOne. El siguiente código me dará el nombre de todo lo exportado para el archivo ChatCommands, pero no estoy seguro de cómo convertir eso en algo procesable.
console.dir(Object.keys(require('./Modules/ChatCommands'))); console.log(typeof Object.keys(require('./Modules/ChatCommands'))) let temp = Object.keys(require('./Modules/ChatCommands')) temp.forEach(element => { console.log(element) });salida de ejemplo:
[ 'rollAD6', 'secondOne' ] object rollAD6 secondOnePodría estar haciendo esto mal. No estoy familiarizado con NodeJS. Solo necesita convertir una cantidad desconocida de objetos de un archivo en funciones en ejecución en el principal.
./Módulos/Comandos de chat
class chatCommand { constructor(key, name) { this.key = key; this.name = name; } //getter get name() { return `${this.name}` } get key() { return `${this.key}` } //setter set name(name) { return "Once name is set it cannot be changed" } set key(key) { return "Once key is set it cannot be changed" } } class rollAD6 extends chatCommand { super(key, name, sides) { this.sides = sides this.key = key; this.name = name; } payload(sides) { console.log(`${sides} `); var randomNumber = Math.floor(Math.random() * sides) + 1; console.log(`${randomNumber} `); return `you rolled ${randomNumber} `; } } class secondOne extends chatCommand { super(key, name) { this.key = key; this.name = name; } payload() { return "Hello there" } } module.exports = { rollAD6, secondOne }