Задать вопрос
  • Постоянно падает сервер на node.js?

    Staltec
    @Staltec
    Node.js разработчик
    Могу предположить, что процесс падает из-за разрыва соединения по таймауту со стороны mySQL если длительное время не было активности на подключении. В этом случае исключение имеет следующий вид:
    Error: Connection lost: The server closed the connection.
        at Protocol.end (*path_to_project*/node_modules/mysql/lib/protocol/Protocol.js:103:13)
        at Socket.<anonymous> (*path_to_project*/node_modules/mysql/lib/Connection.js:88:28)
        at Socket.emit (events.js:117:20)
        at _stream_readable.js:944:16
        at process._tickCallback (node.js:442:13)


    Лечится выставлением таймаута для подключения к mySQL вручную:
    mysqlConnection.query("SET SESSION wait_timeout = 604800"); // 7 days timeout

    А вообще конечно надо запускать node-процесс под супервайзером (pm2, forever, supervisor) и заворачивать поток ошибок в соответствующий error.log. Там сразу будет видно с каким исключением завалился процесс. В противном случае с такими вопросами обращайтесь на битву экстрасенсов.
    Ответ написан
    4 комментария
  • Как ждать выполнения функции?

    @VegasChickiChicki
    // Создаётся объект promise
    let promise = new Promise((resolve, reject) => {
    // Тут должна быть ваша функция, из-за которой весь код будет приостановлен
    
    ...
    
    //Как только функция завершила свое действие, вызываем следующий метод, который продолжит выполнение кода:
    
    resolve();
    });


    Подробнее можно прочитать тут

    P.S. Мой вам совет, не лезьте вы в async\await , пока не изучите промисы, их за час-два понять можно без проблем.
    Ответ написан
    5 комментариев
  • Как сгенерировать объект из массива?

    hzzzzl
    @hzzzzl
    var button1=["Профиль1",'default','{"command": "profile1"}'] 
    var button2=["Профиль2",'default','{"command": "profile2"}']
    var button3=["Профиль3",'default','{"command": "profile3"}']
    var button4=["Профиль4",'default','{"command": "profile4"}']
    
    btns = [button1,button2,button3,button4]
    
    obj = {
        one_time: false,
        buttons: btns.map(btn => ({
            action: {
                type: 'text',
                label: btn[0],
                payload: btn[2]
            },
            color: btn[1]
        }))
    }
    Ответ написан
    Комментировать
  • Как реализовать подсветку синтаксиса на питоне?

    longclaps
    @longclaps
    Ответ написан
    Комментировать
  • Как использовать БД только на клиенте(js)?

    SagePtr
    @SagePtr
    Еда - это святое
    Через IndexedDB можно, но выбрать место хранения не сможете, храниться будет где-то внутри профиля пользователя в браузере, примерно рядом с localStorage.
    Ответ написан
    Комментировать
  • Как использовать БД только на клиенте(js)?

    @McBernar
    Никак. Клиентский js не имеет доступа к системе.

    Можете взять Ноду и Экспресс, тогда у вас будет доступ к файлам. Но это будет уже не статическая хтмл-ка.

    Можете заменить бд на локалсторадж, если такой вариант вам ок.

    Вам, кстати, ничего не мешает захардкодить данные из текстового файла прямо в js, если уж на то пошло.
    Ответ написан
    Комментировать
  • Какой самый быстрый язык для бота ВК?

    @Runnin
    Беседа по vk_api, вступай - https://vk.cc/8WE9bL
    Из личной практики, самый быстрый nodeJS
    Ответ написан
    Комментировать
  • Какой самый быстрый язык для бота ВК?

    Ahen
    @Ahen
    Универсальный дилетант
    Зависит от задач конечного продукта. Один личный проект начинал на php, впоследствии столкнулся с ограничениями, костылями решил, но потом все-равно переписал на nodejs, благо к тому времени завезли промисы и переписать с php было делом двух ночей, при условии сохранения базы на mysql (с этим выбором тоже можно поспорить, но как для личного проекта - на чем умеем на том и делаем в текущий момент).

    Конкретно в моем случае была необходимость организовать обработку информации в бесконечном цикле, когда нужно из хранилища брать информацию о пользователях и при соблюдении совокупности условий присылать этим пользователям оповещения
    Изначально написал демона на php, пришлось изменять настройки сервера для увеличения максимального времени исполнения php скрипта, следить за тем демоном для меня было сложно, часто падал, приходилось рестартить скрипт каждые пол часа.
    Впоследствии реализовал этот функционал на nodejs одной простой функцией с бесконечным циклом и таймаутом вызова, стало гораздо проще обрабатывать исключения и падения.

    Если же в твоей задаче логика ограничивается схемой Запрос -> Ответ без фоновых процессов, то вполне себе подойдет и php. Точнее подойдет то, чем ты владеешь больше всего на текущий момент.
    Ответ написан
    Комментировать
  • Как извлечь множество вложенных архивов?

    @rPman
    так как в тегах 7z значит команда будет с его использованием
    for /l %a in (10000,-1,1) do @"C:\Program Files\7-Zip\7z.exe" x -aos %a.zip
    Ответ написан
    Комментировать
  • Как открыть файл,название которого ввёл пользователь?

    Файлы идентифицируются в системе полным путем. По другому никак.
    Варианты определения пути могут быть разные. Можно, например, использовать путь относительно запускаемой программы.
    Ответ написан
    2 комментария