Ayer creé un bot de discordia a partir de esta publicación para exportar campos de incrustaciones y funcionaba bien, pero no funciona hoy. El error que recibo es TypeError: messages.array is not a function . Intenté desinstalar el nodo y volver a instalarlo, pero fue en vano. Le envié el archivo a un amigo para que lo ejecutara y funcionó perfectamente, por lo que parece ser un problema con mi máquina. También traté de ejecutarlo en mi servidor de Windows y no vi ningún error, pero el bot falló al exportar los campos (no tengo la intención de usar mi servidor para ejecutar el bot, solo lo uso para solucionar problemas). ¿Alguien ha visto este error antes y / o tiene una solución?
Error más detallado (un mensaje):
"xxxx@xxxx-mbp incrustar bot % nodo principal /Usuarios/xxxx/Descargas/incrustar bot/main.js:24 sum_messages.push(...messages.array()); ^
TypeError: Messages.array no es una función en many_of_messages_getter (/Users/xxxx/Downloads/embed bot/main.js:24:39) en processTicksAndRejections (node:internal/process/task_queues:96:5) en async Client. (/Usuarios/xxxx/Descargas/incrustar bot/main.js:36:20)"
async function lots_of_messages_getter(channel, limit = 10000) { const sum_messages = []; let last_id; while (true) { const options = { limit: 100 }; if (last_id) { options.before = last_id; } const messages = await channel.messages.fetch(options); sum_messages.push(...messages.array()); last_id = messages.last().id; if (messages.size != 100 || sum_messages >= limit) { break; } } return sum_messages;}
Messages es una colección , no hay un método de array para ese objeto.
De acuerdo con la documentación , puede convertirlo en una matriz regular y luego usar el operador de propagación.
sum_messages.push(...Array.from(messages));Cambié "matriz" a "valores" y ahora funciona perfectamente. ¡Gracias a todos los que ayudaron!