Как упростить импорт JavaScript-модулей с помощью Node.js Subpath Imports
В этой статье вы узнаете, за что отвечает поле imports в файле package.json, и как с его помощью настроить маппинг путей.Вы также рассмотрите поддержку данного способа в распространённых инструментах разработки и напишете оптимальную конфигурацию:
https://tproger.ru/articles/kak-uprostit-import-javascript-modulej-s-pomoshhyu-node-js-subpath-imports/
#javascript #nodejs
В этой статье вы узнаете, за что отвечает поле imports в файле package.json, и как с его помощью настроить маппинг путей.Вы также рассмотрите поддержку данного способа в распространённых инструментах разработки и напишете оптимальную конфигурацию:
https://tproger.ru/articles/kak-uprostit-import-javascript-modulej-s-pomoshhyu-node-js-subpath-imports/
#javascript #nodejs
Как настроить Node.js Express сервер для React
С помощью сервера на Express.js можно сделать многое, например, осуществлять вызовы к базе данных. Однако, в этом руководстве мы сосредоточились на том, как быстро подключить клиентское React приложение к серверу.
#nodejs #react
С помощью сервера на Express.js можно сделать многое, например, осуществлять вызовы к базе данных. Однако, в этом руководстве мы сосредоточились на том, как быстро подключить клиентское React приложение к серверу.
#nodejs #react
💩10🍾5😐2
Этот репозиторий — компиляция десятков лучших статей по Node.js
У репозитория почти 100 тысяч звезд. В нём собрано более 80 рекомендаций и лучших практик, например:
— какую структуру проекта выбрать;
— как обрабатывать ошибки;
— как оформлять и тестировать код;
— как обеспечить безопасность кода.
Репозиторию — звездочку, пост — в сохраненки: https://github.com/goldbergyoni/nodebestpractices/blob/master/README.russian.md
#nodejs #лучшиепрактики
У репозитория почти 100 тысяч звезд. В нём собрано более 80 рекомендаций и лучших практик, например:
— какую структуру проекта выбрать;
— как обрабатывать ошибки;
— как оформлять и тестировать код;
— как обеспечить безопасность кода.
Репозиторию — звездочку, пост — в сохраненки: https://github.com/goldbergyoni/nodebestpractices/blob/master/README.russian.md
#nodejs #лучшиепрактики
😁19👍6
Ничего необычного, просто пакет для Node.js, который чистит терминал «шваброй».
Исходники: https://github.com/JeanJouliaCode/wipeClean
#nodejs
Исходники: https://github.com/JeanJouliaCode/wipeClean
#nodejs
😁70👍4
Создаем чат в реальном времени с помощью React, Node, Socket.io и HarperDB
Фронтенд: React (фронтенд-фреймворк JavaScript для создания интерактивных приложений).
Бэкенд: Node и Express (Express — очень популярный фреймворк NodeJS, который помогает легко создавать API и бэкенды).
БД: HarperDB (платформа для работы с данными и приложениями, которая позволяет запрашивать данные с помощью SQL или NoSQL. HarperDB также имеет встроенный API, что избавляет нас от необходимости писать много кода для бэкенда).
Коммуникация в реальном времени: Socket.io.
Исходники: https://github.com/DoableDanny/Realtime-chat-app-with-rooms
Гайд с пояснениями: https://habr.com/ru/companies/otus/articles/778594/
#nodejs #react
Фронтенд: React (фронтенд-фреймворк JavaScript для создания интерактивных приложений).
Бэкенд: Node и Express (Express — очень популярный фреймворк NodeJS, который помогает легко создавать API и бэкенды).
БД: HarperDB (платформа для работы с данными и приложениями, которая позволяет запрашивать данные с помощью SQL или NoSQL. HarperDB также имеет встроенный API, что избавляет нас от необходимости писать много кода для бэкенда).
Коммуникация в реальном времени: Socket.io.
Исходники: https://github.com/DoableDanny/Realtime-chat-app-with-rooms
Гайд с пояснениями: https://habr.com/ru/companies/otus/articles/778594/
#nodejs #react
👍14❤5👎1🥰1
Для тех, кто пропустил: на днях пакет Everything, охватывающий зависимостями все пакеты в репозитории NPM, чуть не сломал сам NPM.
На праздниках NPM-пакет Everything от разработчика PatrickJS, охватывающий зависимостями все пакеты в репозитории NPM, случайно чуть не сломал NPM под девизом «мы оживили демона».
Ситуацию постарались быстро исправить, но она все равно оказалась очень интересной. Для этого случая даже сделали специальный сайт: https://everything-registry-website.pages.dev/
Как такое стало возможно и к чему привело:
— Один из разработчиков JavaScript-пакетов провёл эксперимент с созданием и размещением в репозитории NPM пакета everything, который охватывает зависимостями все существующие пакеты в репозитории.
— Для реализации подобной возможности пакет everything связан прямыми зависимостями с пятью пакетами @everything-registry/chunk-N, которые в свою очередь привязываются зависимостями к более 3000 пакетов sub-chunk-N, в каждом из которых осуществляется привязка к 800 существующих пакетов в репозитории;
— Размещение пакета everything в NPM привело к тому, что пакет everything стал инструментом для совершения DoS-атак, так как попытка его установки приводит к загрузке миллионов размещённых в NPM пакетов и исчерпанию имеющегося дискового пространства или остановке выполнения сборочных процессов. NPM пакет был загружен 250 раз, но никто не мешает добавить его в зависимости к другому пакету после взлома учётной записи разработчика для совершения диверсии. Кроме того, невольно атаке оказались подвержены некоторые службы и инструменты осуществляющие мониторинг и проверку новых пакетов, размещаемых в NPM.
— Публикация пакета everything фактически заблокировала возможность удаления любых пакетов в NPM, которые оказались в списке его зависимостей. Пакет из NPM может быть удалён автором только если он ещё не используется в зависимостях других пакетов, но после публикации everything зависимостями оказались охвачены все пакеты в репозитории.
— Примечательно, что удаление самого пакета everything также оказалось заблокированным, так как 9 лет назад в репозитории был размещён тестовый пакет everything-else, в котором была указана строка everything в списке зависимостей. Таким образом, пакет everything после публикации оказался в зависимостях у другого пакета.
Дьявол ещё никогда не заходил так далеко.
#javascript #безопасность #nodejs
На праздниках NPM-пакет Everything от разработчика PatrickJS, охватывающий зависимостями все пакеты в репозитории NPM, случайно чуть не сломал NPM под девизом «мы оживили демона».
Ситуацию постарались быстро исправить, но она все равно оказалась очень интересной. Для этого случая даже сделали специальный сайт: https://everything-registry-website.pages.dev/
Как такое стало возможно и к чему привело:
— Один из разработчиков JavaScript-пакетов провёл эксперимент с созданием и размещением в репозитории NPM пакета everything, который охватывает зависимостями все существующие пакеты в репозитории.
— Для реализации подобной возможности пакет everything связан прямыми зависимостями с пятью пакетами @everything-registry/chunk-N, которые в свою очередь привязываются зависимостями к более 3000 пакетов sub-chunk-N, в каждом из которых осуществляется привязка к 800 существующих пакетов в репозитории;
— Размещение пакета everything в NPM привело к тому, что пакет everything стал инструментом для совершения DoS-атак, так как попытка его установки приводит к загрузке миллионов размещённых в NPM пакетов и исчерпанию имеющегося дискового пространства или остановке выполнения сборочных процессов. NPM пакет был загружен 250 раз, но никто не мешает добавить его в зависимости к другому пакету после взлома учётной записи разработчика для совершения диверсии. Кроме того, невольно атаке оказались подвержены некоторые службы и инструменты осуществляющие мониторинг и проверку новых пакетов, размещаемых в NPM.
— Публикация пакета everything фактически заблокировала возможность удаления любых пакетов в NPM, которые оказались в списке его зависимостей. Пакет из NPM может быть удалён автором только если он ещё не используется в зависимостях других пакетов, но после публикации everything зависимостями оказались охвачены все пакеты в репозитории.
— Примечательно, что удаление самого пакета everything также оказалось заблокированным, так как 9 лет назад в репозитории был размещён тестовый пакет everything-else, в котором была указана строка everything в списке зависимостей. Таким образом, пакет everything после публикации оказался в зависимостях у другого пакета.
Дьявол ещё никогда не заходил так далеко.
#javascript #безопасность #nodejs
🔥15🤯13👍9❤1
Репозиторий, в котором собраны лучшие практики по тестированию JavaScript и Node.js приложений
Подборка советов составлена на основе десятков статей, книг и инструментов:
— cтруктура тестов,
— тесты для бэкенда и микросервисов,
— UI-тесты для веб-компонентов,
— анализ эффективности тестов,
— настройка CI.
Сохраните, чтобы не потерять: https://github.com/goldbergyoni/javascript-testing-best-practices
#javascript #nodejs #тестирование #лучшиепрактики
Подборка советов составлена на основе десятков статей, книг и инструментов:
— cтруктура тестов,
— тесты для бэкенда и микросервисов,
— UI-тесты для веб-компонентов,
— анализ эффективности тестов,
— настройка CI.
Сохраните, чтобы не потерять: https://github.com/goldbergyoni/javascript-testing-best-practices
#javascript #nodejs #тестирование #лучшиепрактики
😁12👍6❤1
Вышла Node.js 22: что нового?
На днях состоялся релиз JavaScript-платформы Node.js 22. Она может быть использована как для серверного сопровождения работы веб-приложений, так и для создания обычных клиентских и серверных сетевых программ.
Основные изменения и дополнения в Node.js 22:
— Движок V8 обновлён до версии 12.4, применяемой в Chromium 124.
— Включён по умолчанию оптимизирующий JIT-компилятор Maglev, нацеленный на быструю генерацию высокопроизводительного машинного кода для активно используемого кода на JavaScript.
— Ускорена работа с потоками за счёт увеличения значения опции highWaterMark с 16 KB до 65 KB (определяет лимит, до которого выполняется буферизация записи).
— Повышена производительность API fetch() и test runner за счёт повышения эффективности создания экземпляров AbortSignal.
— Добавлена экспериментальная возможность запуска скриптов, определённых в файле package.json, используя команду --run.
— Стабилизирована встроенная реализация API WebSocket, позволяющего использовать WebSocket в режиме клиента без установки дополнительных зависимостей.
— Добавлена частичная поддержка API Navigator.
— Объявлен устаревшим API util.
Версия проекта Node.js 22 отнесена к веткам с длительным сроком поддержки (LTS), но этот статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 22.x будет осуществляться до 30 апреля 2027 года. Сопровождение прошлой LTS-ветки Node.js 20.x продлится до апреля 2026 года, а позапрошлой LTS-ветки 18.x — до апреля 2025 года. Сопровождение промежуточной ветки Node.js 21.x будет прекращено 1 июня 2024 года.
Подробнее: https://nodejs.org/en/blog/announcements/v22-release-announce
#javascript #nodejs
На днях состоялся релиз JavaScript-платформы Node.js 22. Она может быть использована как для серверного сопровождения работы веб-приложений, так и для создания обычных клиентских и серверных сетевых программ.
Основные изменения и дополнения в Node.js 22:
— Движок V8 обновлён до версии 12.4, применяемой в Chromium 124.
— Включён по умолчанию оптимизирующий JIT-компилятор Maglev, нацеленный на быструю генерацию высокопроизводительного машинного кода для активно используемого кода на JavaScript.
— Ускорена работа с потоками за счёт увеличения значения опции highWaterMark с 16 KB до 65 KB (определяет лимит, до которого выполняется буферизация записи).
— Повышена производительность API fetch() и test runner за счёт повышения эффективности создания экземпляров AbortSignal.
— Добавлена экспериментальная возможность запуска скриптов, определённых в файле package.json, используя команду --run.
— Стабилизирована встроенная реализация API WebSocket, позволяющего использовать WebSocket в режиме клиента без установки дополнительных зависимостей.
— Добавлена частичная поддержка API Navigator.
— Объявлен устаревшим API util.
Версия проекта Node.js 22 отнесена к веткам с длительным сроком поддержки (LTS), но этот статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 22.x будет осуществляться до 30 апреля 2027 года. Сопровождение прошлой LTS-ветки Node.js 20.x продлится до апреля 2026 года, а позапрошлой LTS-ветки 18.x — до апреля 2025 года. Сопровождение промежуточной ветки Node.js 21.x будет прекращено 1 июня 2024 года.
Подробнее: https://nodejs.org/en/blog/announcements/v22-release-announce
#javascript #nodejs
👍17🔥4❤1
Бесплатный курс по Node.js для Web3
Metalamp запустила новый бесплатный курс для разработчиков, которые хотят погрузиться в Web3 и бэкенд-разработку. В рамках программы вы поэтапно освоите ключевые концепции: работу с асинхронным кодом, создание серверных приложений, взаимодействие с базами данных, разработку ботов и работу с блокчейн-сетями.
Программа состоит из теоретического блока и пяти практических заданий, каждое из которых помогает освоить определенные технологии и шаблоны разработки. Шаг за шагом вы будете учиться применять различные подходы и инструменты. После прохождения всех этапов у вас будут как теоретические знания, так и практические навыки для создания современных приложений на Node.js.
Начать можно по ссылке.
#курс #web3 #nodejs
Metalamp запустила новый бесплатный курс для разработчиков, которые хотят погрузиться в Web3 и бэкенд-разработку. В рамках программы вы поэтапно освоите ключевые концепции: работу с асинхронным кодом, создание серверных приложений, взаимодействие с базами данных, разработку ботов и работу с блокчейн-сетями.
Программа состоит из теоретического блока и пяти практических заданий, каждое из которых помогает освоить определенные технологии и шаблоны разработки. Шаг за шагом вы будете учиться применять различные подходы и инструменты. После прохождения всех этапов у вас будут как теоретические знания, так и практические навыки для создания современных приложений на Node.js.
Начать можно по ссылке.
#курс #web3 #nodejs
👍8❤2
Как переписать библиотеку с JS на Rust
Такая потребность может возникнуть у любого проекта, чья сложность со временем разрастается до серьёзных масштабов. Например, JS может уже не справляться с задачами в адекватные сроки и его нужно как-то ускорить. Rust считается одним из самых производительных языков, поэтому логично переписать сложную логику, требующую скорости на нём.
Автор этой статьи так и сделал, сократив время на вычисления почти в три раза. Он поделился тем, как подружил Rust с Node,js и с какими сложностями столкнулся.
#rust #nodejs #бэкенд
Такая потребность может возникнуть у любого проекта, чья сложность со временем разрастается до серьёзных масштабов. Например, JS может уже не справляться с задачами в адекватные сроки и его нужно как-то ускорить. Rust считается одним из самых производительных языков, поэтому логично переписать сложную логику, требующую скорости на нём.
Автор этой статьи так и сделал, сократив время на вычисления почти в три раза. Он поделился тем, как подружил Rust с Node,js и с какими сложностями столкнулся.
#rust #nodejs #бэкенд
🤣5🗿4👍2❤1
Media is too big
VIEW IN TELEGRAM
Продвинутый бэкенд на Node.js
В этом видео вы узнаете, как реализовать масштабируемый бэкенд на Node.js с использованием фреймворка Nest.js. В качестве СУБД здесь используется PostgreSQL в связке с ORM Sequelize на Node.js. Вы также увидите, как обернуть приложение на Node.js в docker и docker compose.
https://youtu.be/dDeWWQWMM-Y
#бэкенд #nodejs #nestjs #postgresql
p.s. Дайте знать, если будут проблемы с видео на мобилках. Telegram в последнее время багует, особенно с видео
В этом видео вы узнаете, как реализовать масштабируемый бэкенд на Node.js с использованием фреймворка Nest.js. В качестве СУБД здесь используется PostgreSQL в связке с ORM Sequelize на Node.js. Вы также увидите, как обернуть приложение на Node.js в docker и docker compose.
https://youtu.be/dDeWWQWMM-Y
#бэкенд #nodejs #nestjs #postgresql
p.s. Дайте знать, если будут проблемы с видео на мобилках. Telegram в последнее время багует, особенно с видео
👍11🔥8
Forwarded from Сохранёнки программиста
Чек-лист по Node.js для новичков: обработка ошибок
Ошибки в коде неизбежны, но в Node.js их неправильная обработка может привести к серьёзным последствиям: утечки данных, падение приложения или даже зависание сервера. Поэтому умение правильно работать с ошибками — это не просто полезный, а необходимый навык для каждого разработчика.
В этой статье подробно разбираем основные виды ошибок, способы их обработки и самые частые ошибки новичков. Всё на примерах и без лишней теории.
#шпаргалка #nodejs #советы #ru
Ошибки в коде неизбежны, но в Node.js их неправильная обработка может привести к серьёзным последствиям: утечки данных, падение приложения или даже зависание сервера. Поэтому умение правильно работать с ошибками — это не просто полезный, а необходимый навык для каждого разработчика.
В этой статье подробно разбираем основные виды ошибок, способы их обработки и самые частые ошибки новичков. Всё на примерах и без лишней теории.
#шпаргалка #nodejs #советы #ru
👍11❤1🔥1
Современный способ разработки серверов на JS
Ели вы когда-нибудь заходили на главную страницу Node, то наверняка видели этот кусок кода с картинки. Это самый простой веб-сервер, с которого сегодня начинается почти каждый сервер, написанный на JS. Да, это всё может быть прикрыто фреймворком, но по сути, все такие сервера делают примерно одно и то же.
Но сегодня существует более современный способ создания сервера, которому не нужно привязываться к сокету. О нём в этой статье.
#nodejs #javascript #бэкенд
Ели вы когда-нибудь заходили на главную страницу Node, то наверняка видели этот кусок кода с картинки. Это самый простой веб-сервер, с которого сегодня начинается почти каждый сервер, написанный на JS. Да, это всё может быть прикрыто фреймворком, но по сути, все такие сервера делают примерно одно и то же.
Но сегодня существует более современный способ создания сервера, которому не нужно привязываться к сокету. О нём в этой статье.
#nodejs #javascript #бэкенд
👍7
Как устроен Node.js изнутри
Node.js — интересный инструмент для веб-разработчиков. В этой статье мы узнаем, из чего состоит Node.js, разберёмся, как внутренние компоненты Node.js взаимодействуют друг с другом, и изучим репозиторий проекта Node.js на GitHub.
https://www.smashingmagazine.com/2020/04/nodejs-internals/
#бэкенд #nodejs
Node.js — интересный инструмент для веб-разработчиков. В этой статье мы узнаем, из чего состоит Node.js, разберёмся, как внутренние компоненты Node.js взаимодействуют друг с другом, и изучим репозиторий проекта Node.js на GitHub.
https://www.smashingmagazine.com/2020/04/nodejs-internals/
#бэкенд #nodejs
❤5👍3
Media is too big
VIEW IN TELEGRAM
Создаём полноценное приложение для книжного магазина с React, Node и MongoDB
Большой видеокурс по созданию фуллстэк приложения книжного магазина. Вы сможете освоить ключевые технологии для разработки сложных больших проектов, а также поймёте, как они взаимодействуют между собой.
Видео на английском, но в браузере можно посмотреть с субтитрами или нейропереводом, для этого ловите ссылку: https://youtu.be/pgw2KPfgK1E
#видео #курс #фуллстэк #react #nodejs
Большой видеокурс по созданию фуллстэк приложения книжного магазина. Вы сможете освоить ключевые технологии для разработки сложных больших проектов, а также поймёте, как они взаимодействуют между собой.
Видео на английском, но в браузере можно посмотреть с субтитрами или нейропереводом, для этого ловите ссылку: https://youtu.be/pgw2KPfgK1E
#видео #курс #фуллстэк #react #nodejs
👍11
Полное визуальное руководство по пониманию цикла событий Node.js
Node.js устроен не так просто, как кажется. Промисы, таймеры, очередь задач... В какой момент всё это вообще исполняется?
Эта наглядная статья — как экскурсия по закулисью: вы увидите, как работает event loop, в каком порядке выполняются колбэки и почему иногда
#nodejs
Node.js устроен не так просто, как кажется. Промисы, таймеры, очередь задач... В какой момент всё это вообще исполняется?
Эта наглядная статья — как экскурсия по закулисью: вы увидите, как работает event loop, в каком порядке выполняются колбэки и почему иногда
setTimeout
с 0 мс ждёт дольше, чем ожидалось. Визуально, чётко и с примерами. Если вы хотите разобраться в цикле событий раз и навсегда — must read.#nodejs
👍1
Bun – быстрый JS-рантайм, который заменит Node.js?
Познакомьтесь с Bun — движком выполнения JavaScript, который набирает популярность благодаря своей скорости. Он совмещает в одном инструменте сервер, менеджер пакетов и сборщик, работая значительно быстрее привычного Node.js-стека.
В статье рассказывается, зачем появился Bun, какие проблемы он решает и как начать его использовать. Статья не новая, но очень хорошая для первого знакомства.
Как считаете, вытеснит ли Bun привычный Node.js? Пробовали уже в своих проекте?
#javascript@tproger_web #nodejs@tproger_web #bun@tproger_web
Познакомьтесь с Bun — движком выполнения JavaScript, который набирает популярность благодаря своей скорости. Он совмещает в одном инструменте сервер, менеджер пакетов и сборщик, работая значительно быстрее привычного Node.js-стека.
В статье рассказывается, зачем появился Bun, какие проблемы он решает и как начать его использовать. Статья не новая, но очень хорошая для первого знакомства.
Как считаете, вытеснит ли Bun привычный Node.js? Пробовали уже в своих проекте?
#javascript@tproger_web #nodejs@tproger_web #bun@tproger_web
❤2
Как Node.js обрабатывает сотни тысяч запросов в одном потоке
Пошаговый разбор циклов событий, фаз timers → pending → poll → check → close и роли libuv. Вы узнаёте, кто будит коллбэки, почему промисы и таймеры попадают в разные очереди и как Node удерживает высокую производительность, оставаясь однопоточным.
#бэкенд #nodejs
Пошаговый разбор циклов событий, фаз timers → pending → poll → check → close и роли libuv. Вы узнаёте, кто будит коллбэки, почему промисы и таймеры попадают в разные очереди и как Node удерживает высокую производительность, оставаясь однопоточным.
#бэкенд #nodejs
❤6🔥4👍3
Репозиторий, в котором собраны лучшие практики по тестированию JavaScript и Node.js приложений
Подборка советов составлена на основе десятков статей, книг и инструментов:
— cтруктура тестов,
— тесты для бэкенда и микросервисов,
— UI-тесты для веб-компонентов,
— анализ эффективности тестов,
— настройка CI.
Сохраните, чтобы не потерять: https://github.com/goldbergyoni/javascript-testing-best-practices
#javascript #nodejs #тестирование #лучшиепрактики
Подборка советов составлена на основе десятков статей, книг и инструментов:
— cтруктура тестов,
— тесты для бэкенда и микросервисов,
— UI-тесты для веб-компонентов,
— анализ эффективности тестов,
— настройка CI.
Сохраните, чтобы не потерять: https://github.com/goldbergyoni/javascript-testing-best-practices
#javascript #nodejs #тестирование #лучшиепрактики
👍6🔥2❤1
Forwarded from Типичный бэкенд
Почему ваше приложение тормозит: архитектурные bottlenecks, которые никто не замечает
Как найти и устранить архитектурные bottleneck'и: причины тормозов, типовые ошибки и пошаговая методика диагностики.
— Читать дальше «Почему ваше приложение тормозит: архитектурные bottlenecks, которые никто не замечает»
#nodejs
@backend_tproger | Другие наши каналы
Как найти и устранить архитектурные bottleneck'и: причины тормозов, типовые ошибки и пошаговая методика диагностики.
— Читать дальше «Почему ваше приложение тормозит: архитектурные bottlenecks, которые никто не замечает»
#nodejs
@backend_tproger | Другие наши каналы
Tproger
Почему ваше приложение тормозит: архитектурные bottlenecks, которые никто не замечает
Как найти и устранить архитектурные bottleneck'и: причины тормозов, типовые ошибки и пошаговая методика диагностики.
❤1👍1🔥1