Ответы пользователя по тегу Node.js
  • Не работает "reconnect" в socket io, почему?

    Denis_maker
    @Denis_maker Автор вопроса
    ✔ Инженер-программист. Веду весь спектр разработки
    Не получилось разрешить этот момент. Пришлось откатиться до версий пониже. Комбинация, которая работает:
    на сервере: "socket.io": "^2.4.1",
    на клиенте (приложение): "socket.io-client": "^2.4.0"
    на клиенте (админка-ангуляр): "ngx-socket-io": "^3.2.0",
    Ответ написан
    Комментировать
  • Почему скомпилированное приложение в nwjs не видит puppeteer?

    Denis_maker
    @Denis_maker Автор вопроса
    ✔ Инженер-программист. Веду весь спектр разработки
    Решение такое: я вынес папку с браузером в другое место:
    из "C:\ . . . \node_modules\puppeteer\.local-chromium\win64-818858\chrome-win"
    сюда: "C:\chrome-win"
    А в коде прописываю:
    browser = await puppeteer.launch({
          executablePath: 'C:\chrome-win',
          headless: true,
          args: [
            '--no-sandbox'
          ]
       });

    В этом случае скомпилированное приложение видит браузер и отлично с ним работает. После этого недоразумения попробовал electron - там всё по умолчанию заработало и работает всё по ощущениям шустрее как-то. Теперь рекомендую его:
    https://www.electronjs.org/
    Ответ написан
  • Cобытия не прослушиваются в связи socket.io и socket.io-client, Nodejs, Angular?

    Denis_maker
    @Denis_maker
    ✔ Инженер-программист. Веду весь спектр разработки
    Привет, ты нашёл решение проблемы? У меня такой же вопрос:
    https://qna.habr.com/questionversion?question_id=1...
    Ответ написан
    Комментировать
  • Как правильно вызывать скрипты и команды других ЯП, используя Node?

    Denis_maker
    @Denis_maker
    ✔ Инженер-программист. Веду весь спектр разработки
    Есть протоколы передачи данных. Например, по http протоколу, либо TCP, если это что-то более низкоуровневое, вот кстати библиотека для того, чтобы работать с TCP в ноде:
    https://nodejs.org/api/net.html
    Соответственно, можно сделать модульную программу, где каждый отдельный блок будет увязан между собой (например: Node + pythone + C + C#). В каждом модуле необходимо установить слушатель определённого порта, считывать от туда полученные команды, после отработки отправлять ответ обратно или на другой порт, следующему модулю, как-то так. Если слишком абстрактно написал, попробую дополнить ответ позже)
    Ответ написан
    Комментировать
  • Как залить сайт на хостинг reg.ru?

    Denis_maker
    @Denis_maker
    ✔ Инженер-программист. Веду весь спектр разработки
    Привет! На обычном хостинге это не заработает, нужно чтобы был сервер - VDS, VPS... Распишу на примере таймвеба: Сервер Вы арендуете с какой-нибудь ОС, допустим, ubuntu. На ней должен стоять nginx, не apache! После успешной установки, загружаем наш проект в какую-нибудь директорию.
    После этого нужно прописать наш проект в файлик конфигурации, лично у меня он по этому адресу лежит:
    /etc/nginx/sites-available/hello-world.conf

    Здесь в код добавляем вот это:

    # Делаете сервер вот так. После этого по нужному url будет отображаться Ваш проект без порта (:3000 к примеру)
    server {
      listen 80;
      listen [::]:80;
      server_name твой-сайт.ру;
      client_max_body_size 100M;
      location / {
        proxy_pass http://localhost:8080; #Это порт, на котором работает Ваш проект
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;    
      }
    }


    Важно после этих манипуляций к доменному имени прикрепить IP адрес сервера (Запись "А"). Вообще, ребята из поддержки помогают всё это дело запустить, главное загрузить исходники и написать в поддержку)

    Ну и всё в принципе. Запустить проект - запускаешь так же, как у себя локально. Я использую pm2, чтобы он работал в "фоновом режиме".

    putty - программа для удалённого подключения к серверу и управления им через консоль
    FileZilla - программа, чтобы файлы на сервер отправлять и скачивать.

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

    Denis_maker
    @Denis_maker
    ✔ Инженер-программист. Веду весь спектр разработки
    Тебе поможет puppeteer - это "консольный браузер", который через js выполняет нужные тебе действия на странице:
    https://www.npmjs.com/package/puppeteer
    вот как зайти на сайт и сделать скриншот с помощью этой технологии:
    const puppeteer = require('puppeteer');
    
    test();
    
    async function test() {
     const browser = await puppeteer.launch({
        headless: true,
        args :[
          '--no-sandbox'
        ]
      });
    
     const page = await browser.newPage();
      await page.setViewport({
        width: 1366,
        height: 768,
        deviceScaleFactor: 1,
      });
      await page.goto('https://ваш-сайт.ру', {
        waitUntil: 'networkidle2'
      })
     await page.waitForTimeout(1000);
     await page.screenshot({ path: 'example.png' });
     await browser.close();
    }
    Ответ написан
    Комментировать