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

    Robur
    @Robur
    Знаю больше чем это необходимо
    Кеширование - вторая Большая Проблема IT.
    Кешировать можно что угодно, где угодно и как угодно. Ткните пальцем в любой кусок данных, от элемента дом в браузере до блока на жестком диске - и вокруг можно построить кэш. То что кеширует браузер - только капля в море.
    А о каком именно кэшировании шла речь в той статье - лучше прочитать в той статье.
    Если вам хочется в целом в тему кеширования вникнуть получше - запаситесь парой сотен кг печенек, цистерной чая, попрощайтесь с родными и близкими - и в гугл.
    Ответ написан
    Комментировать
  • Можно ли на node js выполнить кодирование изображания по алгоритму Хаффмана?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Главный вопрос, как на node js получить двоичное представление изображения? Как обрабатывать эти данные?


    Используйте Buffer для хранения и работы с бинарными данными. Можно файл сразу в него прочитать, дальше - преобразовывайте как угодно и записывайте обратно.
    Ответ написан
    Комментировать
  • Как работать с асинхронностью javascript (node js)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Не надо с ней бороться, вы не победите.

    Нужно понять и использовать. Чтобы понять - прочитать про EventLoop.
    Чтобы использовать - прочитать про Promise, и async/await (в свежих версиях, либо с транспилером)
    Ответ написан
    2 комментария
  • Как обнаружить ip другого компа в сети на node.js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Неправильный способ - взять адрес и сетевую маску (из них можно легко вычислить все возможные адреса) и просканировать сеть, найдя работающие компы.
    Правильный - один хост должен посылать в локальную сеть broadcast с определенным интервалом, а другой - слушать и показывать найденную игру.
    Простой - получить локальный адрес на втором компе и вывести его пользователю, пользователь просто скажет его другому игроку и тот введет его руками.
    Ответ написан
  • Как понять этот код?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вам в код не нужно смотреть - это просто команда создания симлинка - в описании все написано что происходит.
    Приложение не узнает ничего, оно подключает именно модуль `~/import-me` - нода идет в node_modules, и ищет там этот модуль по пути `node_modules/~/import-me` что резолвится в `app/import-me` так как ~ - это симлинк.
    попробуйте руками сходить по `node_modules/~/import-me` в консоли и все поймете.
    Ответ написан
    2 комментария
  • Как передать большой пакет байт в node.js используя buffer?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Оставим странность того что вы делаете за рамками - каждый развлекается как хочет.
    Если вам просто лень набивать это руками и хочется как-то побыстрее - затолкайте это все в строку в виде "02 00 00 00 45 00 00 ae 78 8b 40 00 80 06 00 00" или как вам там удобно копипасту сделать и из строки уже создайте буфер, распарсив это все как вам надо. Или положите дамп в бинарный файл и прочитайте его сразу в буфер как есть.
    Ответ написан
  • Как настроить инфраструктуру проектов NodeJS и NodeJS + React в системе Windows 10 для их взаимодействия?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если у вас разный origin - у вас будут кроссдоменные запросы не важно винда у вас или что-то еще.
    development.domain и api.development.domain - это разные домены. localhost:8080 и localhost:3000 - это один домен но разный origin.
    Либо в настройте CORS, либо сделайте так чтобы бек отдавал фронт по тому же имени и по тому же порту, что и свое апи. Можно вкрутить прокси если хочется держать отдельно, но смысла в этом особо нет nodejs сделает то же самое с теми же или меньшими усилиями
    Ответ написан
    Комментировать
  • В чём отличие в NodeJS между именем пакета с @ и без?

    Robur
    @Robur
    Знаю больше чем это необходимо
    https://docs.npmjs.com/about-scopes
    Раньше их не было, теперь на них переходят - например тот же babel не так давно переехал, потому и свежее в @.
    Ответ написан
    Комментировать
  • Правильным ли будет мое решение для крупного проекта?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вам нужно расставить приоритеты. У вас очевидно приоритет - подключить Васю во что бы то ни стало, так что правильно или неправильно в вашем случае - не технический вопрос - вам надо в теги про стартапы и обсуждать взаимодействие и пользу фаундеров, как строить отношения и все такое.

    По самой схеме nodejs действительно не нужен - потратьте пару дней на то чтобы прочитать как работать с БД из laravel - это будет меньше по усилиям чем прикручивать туда внешнее Васино api и налаживать чтоб это все нормально работало. Судя по всему все остальное вы уже и так взяли на себя, так что польза Васи для проекта крайне сомнительна.
    Ответ написан
  • Как можно запретить доступ к ресурсам без аутентификации?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Например так как в документации написано: www.passportjs.org/docs/authorize
    поставьте это в статические роуты
    Ответ написан
  • Как правильно закрывать соединение с MySQL в express.js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Правильно закрывать его при остановке сервера.
    Зачем вы на каждый запрос создаете новое подключение к mysql?
    Вы пишете express server как cgi скрипт или php, но в express у вас сервер работает все время - откройте одно соединение при старте и не трогайте его пока процесс не будет остановлен.

    Если очень сильно хочется сделать именно так как у вас - ждите в контроллере пока все запросы к базе завершатся, и добавьте еще один middleware который будет закрывать соединение после того как все прочие слои отработали.
    Но лучше сделать по нормальному.
    Ответ написан
    Комментировать
  • Насколько забивает память "const self = this" в методах классов?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Даже если вы уберете self - вы каждый раз создете новую функцию, и это займет куда больше памяти.

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

    Если по сути примера - self у вас будет в замыкании, останется там висеть пока где-то есть живая ссылка на это замыкание, то есть пока где-то есть ссылка на функцию которую вы передаете в helper.method. как только сборщик мусора сможет это все собрать - память освободится. Если ссылки не умирают и вы вызываете эту функцию раз за разом - память закончится даже если вы уберете self вообще.

    Тут важно убедиться что у вас нигде нет утечек памяти. Если код такой что должен работать долго, упорно и хорошо, например большие и сложные математические вычисления или важен реалтайм (чтобы сборщик мусора не ставил все внезапно на паузу) - то тут нужны специальные техники, чтобы по максимуму избежать создания любого нового объекта в памяти.

    Читайте про сборщик мусора, как он работает и откуда берутся утечки памяти в node.
    Ответ написан
  • Как сделать подгрузку статей в Node JS?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Есть разные способы - зависит от того как сделано у вас. Это называется pagination есть разные способы это сделать вообще и в монго в частности и хорошо расписано много где.
    Например, можно использовать skip и при клике "загрузить еще", ставить его в 6, 12, 18 и так далее.
    Или взять что-то вроде https://github.com/edwardhotchkiss/mongoose-paginate если не хочется изобретать свое.
    Ответ написан
  • Как запустить несколько unit-тестов для JavaScript и NodeJS?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Зависит от test-runner который используется. Они все могут это делать и у всех в доках написано, как запускать. Обычно просто указывается каталог и маска файла - они запускают все что найдут.
    Ответ написан
  • Архитектура приложения на Electron.js, как лучше реализовать?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Самый простой способ - взять любой фреймворк где на все это уже ответили и написали служебный код до вас. React, angular, vue. Или хотя бы посмотрите принцип - как на их основе строятся приложения.

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

    Электрон или нет тут не имеет значения.
    Ответ написан
    1 комментарий
  • Какой выбрать СУБД для Node.js, MySQL или MongoDB?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Для nodejs - все равно, а для вас как разработчика и для вашего проекта - зависит от ваших навыков и от самого проекта. Раз сомневаетесь - берите MySQL - с ним будет проще, на SQL можно сделать базу данных даже не понимая что такое база данных и оно будет работать.
    PS. Есть хорошая библиотека - sequelize.
    Ответ написан
  • Вынос разметки страницы в .html файл в react?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Это теоретически возможно но совершенно не нужно.
    Во первых, в react не используется HTML, и если вы будете писать именно HTML - он просто не подойдет. Вам придется писать тот же JSX просто в отдельном файле которому вы почему-то дадите расширение html.
    Подумайте какую проблему вы этим пытаетесь решить и проблема ли это?
    Если вам не нравится идея смешения кода и разметки - посмотрите на vue например, там шаблон отдельно и "как бы html".
    Ответ написан
    3 комментария
  • Где найти готовые frontend проекты для практики backend'a?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно погуглить что-то в духе "react nodejs express expample" обычно там примеры фронтенда, его оттуда можно взять.
    Для практики с API SPA приложение не нужно - вам нужен любой HTTP клиент который может запросы слать. Открываете его и дергаете API в любых комбинациях которые хочется.
    например https://www.getpostman.com/ подойдет
    Ответ написан
    Комментировать
  • Как отлаживать плагин в node.js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Современные IDE (Webstorm, VsCode) позволяют делать обычную отладку - с брейкпоинтами, просмотром стека, переменных и так далее. Возьмите любой из них, откройте справку как это все настраивается, как запустить скрипт в отладочном режиме и вперед.
    Ответ написан
    Комментировать
  • Можно ли сделать несколько запросов в рамках однйо авторизации?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Когда вы получаете OAuth токен, его можно использовать много раз пока у него не выйдет срок годности или он не будет инвалидирован другим образом
    Ответ написан
    Комментировать