Я создаю бот irc с использованием node.js и библиотеки IRC (https://github.com/martynsmith/node-irc). Когда я пытаюсь объединить строки из текстового файла, бот irc закрывается и выдает ошибку. Я подозреваю, что есть некоторые невидимыеразрывы строк, которые запутывают, но я не знаю, как это проверить или избавиться от этого, если это так.
Объяснение кода: Когда пользователь вводитв сообщении в канале irc вызывается myFunction. myFunction читает текстовый файл test.txt и сохраняет строки как элементы в массиве myArray. Затем я пытаюсь заставить бота распечатать элемент этого массива, используякоманда bot.say. config.channels [0] - это канал, на котором было напечатано сообщение, а также место, где должен ответить бот.
Бот может распечатать myArray [0] и myArray [1] вразличные строки без проблем, но потом ничего не может объединить.
Сообщение об ошибке: C: \ Program Files \ nodejs \ node_modules \ irc \ lib \ irc.js: 849 throwошибка[ERR_UNHANDLED_ERROR]: необработанная ошибка.([объект Object]) на Client.emit (events.js: 171: 17) на клиенте.(C: \ Program Files \ nodejs \ node_modules \ irc \ lib \ irc.js: 643: 26) в Client.emit (events.js: 182: 13) в итераторе (C: \ Program Files \ nodejs \ node_modules \ irc\ lib \ irc.js: 846: 26) в Array.forEach () в Socket.handleData (C: \ Program Files \ nodejs \ node_modules \ irc \ lib \ irc.js: 841: 15) в Socket.emit (события.js: 182: 13) в addChunk (_stream_readable.js: 283: 12) в readableAddChunk (_stream_readable.js: 260: 13) в Socket.Readable.push (_stream_readable.js: 219: 10)
test.txt содержит буквы abcd в разных строках.
var config = {
channels: ["#channelname"],
server: "se.quakenet.org",
botName: "testbot"
};
// Get the lib
var irc = require("irc");
// Create the bot name
var bot = new irc.Client(config.server, config.botName, {
channels: config.channels
});
// Listen for any message
bot.addListener("message", function(from, to, text, message) {
myFunction(); //call myFunction when someone types something in the channel
});
function myFunction() {
var myArray = readTextFile('test.txt');
bot.say(config.channels[0],myArray[0]); //Print out the first element in myArray (works, this prints out 'a')
bot.say(config.channels[0],myArray[1]); //Print out the second element in myArray(works, this prints out 'b')
bot.say(config.channels[0],'test' + myArray[0]); //Works, prints out 'testa'
bot.say(config.channels[0],myArray[0] + 'test'); //concatenate a string afterwards (prints out 'a' and then throws an error and makes the bot disconnect from server)
bot.say(config.channels[0],myArray[0] + myArray[1]); //prints out 'a' and then throws an error and makes the bot disconnect from server
}
//function to read a text file:
function readTextFile(file) {
var fs = require("fs");
var textFile = fs.readFileSync("./" + file, {"encoding": "utf-8"});
textFileArray = textFile.split('\n');
return textFileArray;
}