Как упростить работу с базами данных в Node.js с помощью Objection.js
Objection.js — минималистичная ORM-библиотека для Node.js, которая сильно упрощает взаимодействие с базами данных и не перегружена дополнительными функциями, как sequalize или typeORM.
В этой статье вы узнаете, в чём её специфика и как строить запросы с её помощью:
https://habr.com/ru/company/hexlet/blog/660359/
#nodejs #библиотека
Objection.js — минималистичная ORM-библиотека для Node.js, которая сильно упрощает взаимодействие с базами данных и не перегружена дополнительными функциями, как sequalize или typeORM.
В этой статье вы узнаете, в чём её специфика и как строить запросы с её помощью:
https://habr.com/ru/company/hexlet/blog/660359/
#nodejs #библиотека
Решения для ведения журналов для Node.js
Ведение журнала является неотъемлемой частью создания современных веб-приложений. Это помогает разработчикам исследовать различные проблемы с приложениями и быстро находить решения.
В этой статье представлены различные решения для ведения журналов для вашего приложения Node.js — Winston, Pino, Bunyan, Log Level и npmlog:
https://blog.bitsrc.io/logging-solutions-for-node-js-964487f169ea
#nodejs
Ведение журнала является неотъемлемой частью создания современных веб-приложений. Это помогает разработчикам исследовать различные проблемы с приложениями и быстро находить решения.
В этой статье представлены различные решения для ведения журналов для вашего приложения Node.js — Winston, Pino, Bunyan, Log Level и npmlog:
https://blog.bitsrc.io/logging-solutions-for-node-js-964487f169ea
#nodejs
Собираем и деплоим в Kubernetes приложение на Node.js с помощью werf
В этой статье рассмотрели, как собрать Docker-контейнер Node.js-приложения и развернуть его в Kubernetes, используя werf. А также вы узнаете, как потом легко накатить изменения в коде и правильно организовать выдачу asset’ов:
https://tproger.ru/articles/kubernetes-node-js-werf/
#devops #kubernetes #nodejs
В этой статье рассмотрели, как собрать Docker-контейнер Node.js-приложения и развернуть его в Kubernetes, используя werf. А также вы узнаете, как потом легко накатить изменения в коде и правильно организовать выдачу asset’ов:
https://tproger.ru/articles/kubernetes-node-js-werf/
#devops #kubernetes #nodejs
Введение в Deno: лучше ли он, чем Node.js?
Deno — это среда выполнения JavaScript и TypeScript, похожая на Node.js, но построенная на Rust и движке JavaScript V8. Он был создан человеком, первоначально создавшим Node.js, как работа над ошибками.
В этой статье вы узнаете о преимуществах и недостатках Deno перед своим предком, а также изучите основные особенности и функции Deno:
https://blog.appsignal.com/2022/02/09/an-introduction-to-deno-is-it-better-than-nodejs.html
#nodejs #deno
Deno — это среда выполнения JavaScript и TypeScript, похожая на Node.js, но построенная на Rust и движке JavaScript V8. Он был создан человеком, первоначально создавшим Node.js, как работа над ошибками.
В этой статье вы узнаете о преимуществах и недостатках Deno перед своим предком, а также изучите основные особенности и функции Deno:
https://blog.appsignal.com/2022/02/09/an-introduction-to-deno-is-it-better-than-nodejs.html
#nodejs #deno
Продвинутый бэкенд на Node.js
В этом видео вы узнаете, как реализовать масштабируемый бэкенд на Node.js с использованием фреймворка Nest.js. В качестве СУБД здесь используется PostgreSQL в связке с ORM Sequelize на Node.js. Вы также увидите, как обернуть приложение на Node.js в docker и docker compose.
https://youtu.be/dDeWWQWMM-Y
#бэкенд #nodejs
В этом видео вы узнаете, как реализовать масштабируемый бэкенд на Node.js с использованием фреймворка Nest.js. В качестве СУБД здесь используется PostgreSQL в связке с ORM Sequelize на Node.js. Вы также увидите, как обернуть приложение на Node.js в docker и docker compose.
https://youtu.be/dDeWWQWMM-Y
#бэкенд #nodejs
Собираем и деплоим приложение на Node.js с помощью werf
В прошлый раз мы рассмотрели базовое Node.js-приложение и его деплой в Kubernetes.
Теперь мы дополним его, подключив к нему базу данных. В качестве последней будем использовать MySQL, добавив в приложение необходимые для работы с ней компоненты, развернем БД в кластере, а также рассмотрим, как правильно инициализировать базу и выполнить миграции: https://tproger.ru/articles/sobiraem-i-deploim-priloz..
#devops #kubernetes #nodejs #бд
В прошлый раз мы рассмотрели базовое Node.js-приложение и его деплой в Kubernetes.
Теперь мы дополним его, подключив к нему базу данных. В качестве последней будем использовать MySQL, добавив в приложение необходимые для работы с ней компоненты, развернем БД в кластере, а также рассмотрим, как правильно инициализировать базу и выполнить миграции: https://tproger.ru/articles/sobiraem-i-deploim-priloz..
#devops #kubernetes #nodejs #бд
Собираем и деплоим приложение на Node.js с помощью werf. Работа с базой данных
Это продолжение материала, посвящённого созданию и запуску приложения на Node.js с помощью werf. В прошлый раз автор рассмотрел базовое Node.js-приложение и его деплой в Kubernetes. Теперь же вы сможете дополнить его, добавив базу данных MySQL. Приложение получит все необходимые для этого компоненты и настройки.
Подробнее:
https://tproger.ru/articles/sobiraem-i-deploim-prilozhenie-na-node-js-s-pomoshhju-werf-rabota-s-bazoj-dannyh/
#devops #kubernetes #nodejs #sql
Это продолжение материала, посвящённого созданию и запуску приложения на Node.js с помощью werf. В прошлый раз автор рассмотрел базовое Node.js-приложение и его деплой в Kubernetes. Теперь же вы сможете дополнить его, добавив базу данных MySQL. Приложение получит все необходимые для этого компоненты и настройки.
Подробнее:
https://tproger.ru/articles/sobiraem-i-deploim-prilozhenie-na-node-js-s-pomoshhju-werf-rabota-s-bazoj-dannyh/
#devops #kubernetes #nodejs #sql
Как создать бота Discord с Node.js, Discord.js и OpenAI GPT-3
Сегодня для использования мощи ИИ вам не нужно долго и нудно обучать нейросеть, ведь крупные компании уже позаботились об этом и дают доступ к своему API. Если хотите понять, как работать с ИИ и научиться добавлять его в свои проекты, то прочитайте эту статью.
С помощью этого руководства вы создадите бота Discord, который сможет отвечать на сложные вопросы и выполнять требуемые задания. Для этой цели вам потребуется Node.js, Discord.js и OpenAI API для GPT-3, одной из самых крупных и умных обученных нейронных сетей. Подробнее:
https://nuancesprog.ru/p/16647/
#ml #nodejs
Сегодня для использования мощи ИИ вам не нужно долго и нудно обучать нейросеть, ведь крупные компании уже позаботились об этом и дают доступ к своему API. Если хотите понять, как работать с ИИ и научиться добавлять его в свои проекты, то прочитайте эту статью.
С помощью этого руководства вы создадите бота Discord, который сможет отвечать на сложные вопросы и выполнять требуемые задания. Для этой цели вам потребуется Node.js, Discord.js и OpenAI API для GPT-3, одной из самых крупных и умных обученных нейронных сетей. Подробнее:
https://nuancesprog.ru/p/16647/
#ml #nodejs
Рендеринг данных в реальном времени с помощью Vue, Node.js и socket.io
Сокеты обычно лучше всего подходят для обмена данными в реальном времени между клиентами и серверами. В этом руководстве вы узнаете, как отображать данные в реальном времени через сервер и как используются сокеты. Вы сможете создать простую блочную игру, используя Vue.Js, Node.Js, и Socket.io, чтобы увидеть все нюансы применения этих технологий вместе:
https://blog.openreplay.com/rendering-real-time-data-with-vue-node-and-socket-io
#vue #nodejs #socketio
Сокеты обычно лучше всего подходят для обмена данными в реальном времени между клиентами и серверами. В этом руководстве вы узнаете, как отображать данные в реальном времени через сервер и как используются сокеты. Вы сможете создать простую блочную игру, используя Vue.Js, Node.Js, и Socket.io, чтобы увидеть все нюансы применения этих технологий вместе:
https://blog.openreplay.com/rendering-real-time-data-with-vue-node-and-socket-io
#vue #nodejs #socketio
Видеокурс по продвинутому бэкенду на Node.js
В этом видео вы узнаете, как создать масштабируемый бэкенд на Node.js с использованием фреймворка Nest.jsm PostgreSQL в качестве СУБД и Docker. Сохраняйте на будущее в закладках или смотрите прямо сейчас:
https://youtu.be/dDeWWQWMM-Y
#видео #бэкенд #nodejs
В этом видео вы узнаете, как создать масштабируемый бэкенд на Node.js с использованием фреймворка Nest.jsm PostgreSQL в качестве СУБД и Docker. Сохраняйте на будущее в закладках или смотрите прямо сейчас:
https://youtu.be/dDeWWQWMM-Y
#видео #бэкенд #nodejs
Node.js: использование веб-потоков
Веб-потоки (web streams) — это стандарт для потоков (streams), который поддерживается всеми основными веб-платформами. Потоки — это абстракция для чтения и записи данных последовательно, небольшими частями из любого вида источника — файлов, данных, находящихся на сервере, и т.д.
В этой статье вы узнаете, как правильно использовать веб-потоки и где они будут полезны:
https://habr.com/ru/companies/timeweb/articles/675676/
#бэкенд #nodejs
Веб-потоки (web streams) — это стандарт для потоков (streams), который поддерживается всеми основными веб-платформами. Потоки — это абстракция для чтения и записи данных последовательно, небольшими частями из любого вида источника — файлов, данных, находящихся на сервере, и т.д.
В этой статье вы узнаете, как правильно использовать веб-потоки и где они будут полезны:
https://habr.com/ru/companies/timeweb/articles/675676/
#бэкенд #nodejs
Как использовать многопоточность в Node.js
Node.js запускает код JavaScript в одном потоке, что означает, что ваш код может выполнять только одну задачу одновременно. Хотя сам по себе Node.js является многопоточным. Чтобы сделать его многопоточным существует модуль worker-threads, который позволяет создавать потоки и выполнять несколько задач JavaScript параллельно.
В этом руководстве вы создадите Node.js приложение с ресурсоемкой задачей, которая блокирует основной поток. А затем посмотрите, как
https://www.digitalocean.com/community/tutorials/how-to-use-multithreading-in-node-js
#nodejs
Node.js запускает код JavaScript в одном потоке, что означает, что ваш код может выполнять только одну задачу одновременно. Хотя сам по себе Node.js является многопоточным. Чтобы сделать его многопоточным существует модуль worker-threads, который позволяет создавать потоки и выполнять несколько задач JavaScript параллельно.
В этом руководстве вы создадите Node.js приложение с ресурсоемкой задачей, которая блокирует основной поток. А затем посмотрите, как
worker-threads
помогает разделить задачу, ускоряя её выполнение и снижая нагрузку на процессор:https://www.digitalocean.com/community/tutorials/how-to-use-multithreading-in-node-js
#nodejs
Как упростить импорт 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
Этот репозиторий — компиляция десятков лучших статей по 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 #лучшиепрактики
Ничего необычного, просто пакет для Node.js, который чистит терминал «шваброй».
Исходники: https://github.com/JeanJouliaCode/wipeClean
#nodejs
Исходники: https://github.com/JeanJouliaCode/wipeClean
#nodejs
Создаем чат в реальном времени с помощью 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
Для тех, кто пропустил: на днях пакет 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
Репозиторий, в котором собраны лучшие практики по тестированию 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 #тестирование #лучшиепрактики
Вышла 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