Ответы пользователя по тегу Node.js
  • Как перенаправить запросы с интернета на локальный ip?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Приобрести у своего провайдера внешний IP и настроить IP-forwarding в своем роутере. Для удобства можно приобрести домен и привязать к нему IP.
    Ответ написан
    1 комментарий
  • На одном сайте nodejs с php?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Да, можно.
    Ответ написан
    Комментировать
  • Electron.js | Возможно ли имитировать клики на Windows?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Встроенными инструментами - нет, нельзя. Электрон - это хромиум с интегрированной node.js, еще существует NWJS (обновляется регулярно, разработчики открыты для диалога с пользователями).
    В ОС Windows эмуляция мыши осуществляется через WinAPI несколькими разными способами (SendInput, Send/PostMessage, DirectInput). В node.js / браузере нет встроенных инструментов для вызова ОС API и для решения данной задачи надо либо написать свой модуль для NodeJS либо плагин для Хромиума, либо написать какую-то отдельную программу на чем-то типа С/С++ и каким-то образом подключить её к NodeJS (например через TCP сокеты или веб-сокеты). Это из самых простых вариантов. А более сложные не имеют особого смысла из-за сложности своей.
    Ответ написан
    Комментировать
  • Как сделать FTP без модулей в NodeJS?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    RFC 959 - вот тут все очень детально и подробно расписано.
    Ответ написан
  • Автозагрузка nodejs на windows 10?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Пуск -> Автозагрузка
    Ответ написан
  • Что выбрать для перехода?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Перемешается только в том случае, если в голове будет каша (ну, в таких случаях вообще исключительно редко попадают в высокоинтеллектуальные сферы работы). А так - никаких проблем. Достаточно просто выработать привычку переключения глобального контекста в голове.
    Ответ написан
    Комментировать
  • На чём лучше писать десктопные приложения?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    На нативных ЯП — C# вполне адекватный инструмент. Десктопные приложения с HTML/JS очень толстые и медленные. Если уж и делать - то лучшим выбором будет NWJS (отличная документация, постоянно выходят новые версия с багфиксами и обновлениями, новые фичи, разработчики открыты к диалогу с юзерами, ничего лишнего нету, большое коммьюнити). Электрон не советую - т.к. он менее стабильный (есть печальный опыт попытки использования в продакшене) и плюс есть баги, которые не будут исправляться.
    Ответ написан
    2 комментария
  • Как реализовать real-time систему диалогов?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    WebSockets - крутая штука. Можно взять готовую библиотеку - например, там же есть готовые примеры, которые можно сразу использовать. Если возникнут какие вопросы по использованию - велкам в чат.
    Ответ написан
    Комментировать
  • Node.js Что здесь происходит?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    var body = []; // Создаем переменную с массивом 
    request.on('data', function(chunk) { // Подписываем анонимную функцию на событие 'data'
        // chunk - это блок полученных данных
        body.push(chunk); // Добавляем блок данных в конец массива 
    }).on('end', function() { // Подписываем анонимную функцию на событие 'end'
        body = Buffer.concat(body).toString(); // Объединяем все блоки даннных в один, затем конвертируем результат в строку и сохраняем в переменную body
    });
    Ответ написан
    Комментировать
  • Как лучше обрабатывать и записывать большой объем данных?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Например так:

    var myDataObject = {}
        , dataExample1 = { sip:"1.1.1.1:11233", title:"block", value:"val 1"}
        , dataExample2 = { sip:"1.1.1.1:11233", title:"block", value:"val 2"}
        , dataExample3 = { sip:"1.1.1.1:11233", title:"view", value:"val 3"}
    ;
    
    addMyData = function(data){
        var exData = myDataObject[data.sip]
            , exTitle 
        ;
    
        if( !exData ){
            exData = myDataObject[data.sip] = { title: {} }
        }
    
        exTitle = exData.title[data.title];
    
        if( !exTitle ){
            exTitle = exData.title[data.title] = []
        }
    
        exTitle.push( data.value );
    }
    
    addMyData(dataExample1);
    addMyData(dataExample2);
    addMyData(dataExample3);
    
    console.log(myDataObject);
    console.info(JSON.stringify(myDataObject, null, 4));


    Если значение может быть только одно и старые значения не нужны - то и массив не нужен, а сразу записывать его в tittle.
    Ответ написан
    Комментировать
  • Почему fs модуль не создает папку?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Потому что createWrite stream - это именно создание потока для записи и не более того. И аналогично со всеми остальными функциями в модуле fs - если это не создание каталога, то функция и не будет создавать каталог. Поэтому, перед записью файла необходимо убедиться в наличии всех каталогов к этому файлу. Расширений к модулю fs полно, например: https://github.com/jprichardson/node-fs-extra - там есть функции для автоматического создания каталогов.
    Ответ написан
    Комментировать
  • Сохранение и установка сокета - как реализовать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никак. Не, сохранить-то куда-то конечно можно без проблем, но зачем? ID сокета выдается ОС при установке соединения, если соединение рвется (а оно рвется, т.к. приложение перезапускается) - то сокет уничтожается. Соответственно попытка передать данные через несуществующий сокет приведет к возникновению исключения.
    Ответ написан