Хренею от количества ошибок вида: TypeError: Result of expression '(VAR_VARIABLE).indexOf' [undefined] is not a function

Поддержка
  • Мой скрипт постоянно делает запросы по API (блок Node.js). РРаботает в 13 потоков. Спустя 4 суток работы я завершил скрипт и получил такой отчет об ошибках:
    Удачно(0)
    Неудач(0)

    Неудач и восстановлено(15959)
    Сообщения:
    9751 - TypeError: Result of expression '(VAR_OPEN).indexOf' [undefined] is not a function. во время выполнения действия
    3147 - TypeError: Result of expression '(VAR_DEL).indexOf' [undefined] is not a function. во время выполнения действия
    1594 - TypeError: Result of expression '(VAR_POST).indexOf' [undefined] is not a function. во время выполнения действия
    1401 - ReferenceError: Can't find variable: VAR_RAZR во время выполнения действия
    34 - TypeError: Result of expression '(VAR_MASSIV).indexOf' [undefined] is not a function. во время выполнения действия
    18 - Таймаут во время выполнения функции на встроенном языке
    5 - TypeError: Result of expression '(VAR_OPEN).indexOf' [undefined] is not a function. во время выполнения действия 668286231
    2 - TypeError: Result of expression '(VAR_DEL).indexOf' [undefined] is not a function. во время выполнения действия 165193625
    2 - OpenSSL SSL_connect: Connection was reset in connection to
    2 - TypeError: Result of expression '(VAR_SUMM_PR).indexOf' [undefined] is not a function. во время выполнения действия
    1 - TypeError: Result of expression '(VAR_POST).indexOf' [undefined] is not a function. во время выполнения действия 421419270
    1 - Empty reply from server

    Сейчас меня больше всего интересует ошибка, которая встречается наиболее часто (обозначена в заголовке темы).
    Вот эти ошибки:
    5 - TypeError: Result of expression '(VAR_OPEN).indexOf' [undefined] is not a function. во время выполнения действия 668286231
    2 - TypeError: Result of expression '(VAR_DEL).indexOf' [undefined] is not a function. во время выполнения действия 165193625
    1 - TypeError: Result of expression '(VAR_POST).indexOf' [undefined] is not a function. во время выполнения действия 421419270
    по id действия соответствуют действию "Перейти к метке". С чего вдруг это стало вызывать ошибку? Что посоветуете предпринять?
    Самая главная проблема для меня тут в том, что API запросы в отдельных потоках спустя некоторое время перестают работать.

    Версия: 23.2.2
    ОС: WINDOWS 7

  • @botovod, ошибка TypeError: Result of expression '(VAR_VARIABLE).indexOf' [undefined] is not a function значит что в переменной к которой вы применяете .indexOf() содержится не строку и не массив. Свойство indexOf имеют только строки и массивы.

  • @botovod надо обрабатывать возможные ошибки в ноде, или они будут ранять процесс

  • @UserTrue В ноде уже использую самую простую систему обработки ошибок. Привожу часть кода:

        var req = https.request(options, (res) => {
            console.log('statusCode:', res.statusCode);
            console.log('headers:', res.headers);
    
            res.on('data', (d) => {
                console.log(d);
                resolve()
            });
    
            res.on('error', (e) => {
                console.log('ошибка');
                console.log(e);
                resolve()
            });
    
        });
        req.end();
    
        req.on('error', (e) => {
            console.log('ошибка');
            console.log(e);
            resolve()
        });
    
    }));
    

    Т.е. на выходе с ноды я имею в переменную выводится либо ответ сервера либо ошибка сервера или ноды. Я думаю этого уже достаточно, чтобы нода не падала (но она все равно падает!). Поправьте меня, если я не прав.

  • @botovod возможно иногда приходит в ответ не то, что ожидается и это вызывает какую-то ошибоку в вашем коде. Кстати советую использовать библиотеки got или fetch для работы с http, это гораздо удобней чем нативный модуль

  • @UserTrue said in Хренею от количества ошибок вида: TypeError: Result of expression '(VAR_VARIABLE).indexOf' [undefined] is not a function:

    советую использовать библиотеки got или fetch для работы с http, это гораздо удобней чем нативный модуль

    Это сделает стабильнее работу ноды на ваш взгляд?

  • @botovod said in Хренею от количества ошибок вида: TypeError: Result of expression '(VAR_VARIABLE).indexOf' [undefined] is not a function:

    Это сделает стабильнее работу ноды на ваш взгляд?

    Это не имеет отношения к стабильности, это о удобстве.

  • @GhostZ said in Хренею от количества ошибок вида: TypeError: Result of expression '(VAR_VARIABLE).indexOf' [undefined] is not a function:

    @botovod, ошибка TypeError: Result of expression '(VAR_VARIABLE).indexOf' [undefined] is not a function значит что в переменной к которой вы применяете .indexOf() содержится не строку и не массив. Свойство indexOf имеют только строки и массивы.

    Если переменная к которой я применяю indexOf не является строкой или массивом, то она может быть только числом. Странно, ведь сервер в моем случае может возвращать только строковое значение, но никак не число.
    Скрипт у меня сделан таким образом, что перед каждым API запросом я присваиваю переменной VARIABLE строковое значение 0. Бас после запроса должен присвоить этой переменной ответ сервера в виде строкового значения. Возможно, проблема в том, что БАС в ряде случаев воспринимает строку 0 как число 0 в том случае если нода упала или ответ не получен ?