от
Я играл вокруг с сегментами кода и не могу показаться, чтобы понять это. Что я пытаюсь сделать, это назад и вперед коммуникации между клиентом и сервером, работающим с
require('net')
. Я, кажется, возникли проблемы в моей
.on('data'
событие, это явно вопрос восприятия, но я не могу показаться, чтобы выяснить этот один. Вот фрагмент моего кода сервера:
server.on('connection', connection => {
// ...
  connection.on('data', (data) => {
    console.log("I've got Data");
    if (/list/.test(data)) {
      const listOfFiles = [];
      fs.readdir(FILE_PATH, (error, files) =>  {
        for (let i = 0; i < files.length; i  ) {
          if (/[.]txt/.test(files[i])) {
            listOfFiles.push(files[i]);
          }
        }
        listOfFiles.push(MESSAGES[2]);
        connection.write(listOfFiles.join('\n'));
      });
    }
// ...
Она просто пытается слушать список команд "" и если это так, выведите его в одно событие
.write
. Вот фрагмент моего кода клиента:
client.on('connect', () => {
  client.on('data', (data) => {
    console.log(data);

    askQuestion((error,answer) => {
      if (error) {
        return callback(error, null);
      } else {
        client.write(answer);
      }
    });

    client.on('data', (data) => {
      console.log("HAHA!");
    });
  });
});
С функцией принадлежности:
const askQuestion = (callback) => {
  rl.question(`> `, (answer) => {
    callback(null, answer);
    rl.close();
  });
};
Я кажется понял, что происходит,
client.on('data'
никогда полностью не устраняет, так что я могу выполнить команду "список", но это не позволит мне проводить его во второй раз. Вот где я немного застрял. Я буду играть с различными способами рефакторинг мой код, в надежде заставить его работать, но если кто имеет какие-либо предложения, я буду благодарен.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...