Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Проблема с кодом (https://javascript.ru/forum/node-js-io-js/79010-problema-s-kodom.html)

Jexly 05.12.2019 12:49

Проблема с кодом
 
Доброго времени суток! Я в надежде найти хоть какую-то помощь, обращаюсь сюда.

У меня при запуске моего бота выходит ошибка:
(node:2128) UnhandledPromiseRejectionWarning: TypeError: config is not iterable
    at C:\Users\User\Desktop\Bot\src\load.js:14:61
    at Client.<anonymous> (C:\Users\User\Desktop\Bot\src\load.js:37:6)
    at Client.emit (events.js:215:7)


В главном файле (main.js) у меня следующее:
const discord = require("discord.js");
const bot = new discord.Client();

const config = require("./conf.json");

var track = require("./src/track");
track(bot, config);

var load = require("./src/load");
load(bot, config);


А в load.js:
function cleanEmojiDiscriminator(emojiDiscriminator) {
	var regEx = /[A-Za-z0-9_]+:[0-9]+/;
	var cleaned = regEx.exec(emojiDiscriminator);
	if (cleaned) return cleaned[0];
	return emojiDiscriminator;
}

module.exports = function(client, config) {
	
	client
		.on("ready", () => {
			(async () => {
				var debug_count_messagesFetched = 0;
				for (var { channel, message: message_id, reactions } of config) {
					var message = await client.channels.get(channel).fetchMessage(message_id)
						.catch(error => console.error(error));
					if (!message) continue;
					debug_count_messagesFetched += 1;
					for (var {emoji} of reactions) {
						emoji = cleanEmojiDiscriminator(emoji);
						var messageReaction = message.reactions.get(emoji);
						if (!messageReaction) {
							await message.react(emoji)
								.catch(error => console.error(error));
						} else {
							if (!messageReaction.me) {
								messageReaction.fetchUsers();
								await message.react(emoji)
									.catch(error => console.error(error));
							}
						}
					}
				}
				const chalk = require('chalk');
                const moment = require('moment');
				console.log(chalk.cyan(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] Reaction roles loaded`));
			})();
		});
};


Я уже у многих спросил что именно мне нужно исправить, и никто так и не сказал, почему у меня появляется данная ошибка... Я уже много чего перечитал, но я до сих пор ничего не понял. Надеюсь на Вашу помощь!

P.S. lib discord.js

Rise 05.12.2019 12:59

Тута conf.json не массив.

Jexly 05.12.2019 13:00

То есть? Как мне исправить?

Jexly 05.12.2019 13:41

Все, спасибо, помогли!

Rise 05.12.2019 13:47

Структура conf.json такая ожидается:
[{ 
    "channel": 11,
    "message": 12,
    "reactions": [
        { "emoji": 131 },
        { "emoji": 132 }
    ]
},{ 
    "channel": 21,
    "message": 22,
    "reactions": [
        { "emoji": 231 },
        { "emoji": 232 }
    ]
}]

Тогда ошибки не будет:
var config = [{ 
    "channel": 11,
    "message": 12,
    "reactions": [
        { "emoji": 131 },
        { "emoji": 132 }
    ]
},{ 
    "channel": 21,
    "message": 22,
    "reactions": [
        { "emoji": 231 },
        { "emoji": 232 }
    ]
}];
for (var { channel, message: message_id, reactions } of config) {
    console.log('for#1', channel, message_id, reactions);
    for (var { emoji } of reactions) {
        console.log('for#2', emoji);
    }
}

Jexly 05.12.2019 14:03

Да, я уже понял, еще раз спасибо!


Часовой пояс GMT +3, время: 19:02.