Node.js Database
RxDB - это быстрая, реактивная база данных NoSQL реального времени, созданная для приложений на JavaScript, таких как веб-сайты, гибридные приложения, приложения Electron, Progressive Web Apps и Node.js. Хотя RxDB изначально создавалась для использования в приложениях пользовательского интерфейса, она была доработана и оптимизирована, чтобы сделать ее полезной для использования на стороне сервера. Ее можно использовать как встроенную локальную базу данных внутри JavaScript-процесса Node.js или как сервер базы данных, к которому Node.js может подключаться. Слой RxStorage позволяет менять базовый механизм хранения данных, что делает RxDB очень гибкой базой данных, которая может быть оптимизирована для многих сценариев.
https://rxdb.info/nodejs-database.html
✍️ @nodejs_lib
RxDB - это быстрая, реактивная база данных NoSQL реального времени, созданная для приложений на JavaScript, таких как веб-сайты, гибридные приложения, приложения Electron, Progressive Web Apps и Node.js. Хотя RxDB изначально создавалась для использования в приложениях пользовательского интерфейса, она была доработана и оптимизирована, чтобы сделать ее полезной для использования на стороне сервера. Ее можно использовать как встроенную локальную базу данных внутри JavaScript-процесса Node.js или как сервер базы данных, к которому Node.js может подключаться. Слой RxStorage позволяет менять базовый механизм хранения данных, что делает RxDB очень гибкой базой данных, которая может быть оптимизирована для многих сценариев.
https://rxdb.info/nodejs-database.html
✍️ @nodejs_lib
Выкиньте свой husky
В git давно есть нативные хуки, на которые можно повесить произвольные скрипты (например, для линтинга). Они изначально уже присутствуют в любом репозитории в виде исполняемых файлов, можно посмотреть на них, если зайти в .git/hooks
https://habr.com/ru/articles/807763/
✍️ @nodejs_lib
В git давно есть нативные хуки, на которые можно повесить произвольные скрипты (например, для линтинга). Они изначально уже присутствуют в любом репозитории в виде исполняемых файлов, можно посмотреть на них, если зайти в .git/hooks
https://habr.com/ru/articles/807763/
✍️ @nodejs_lib
Media is too big
VIEW IN TELEGRAM
Теперь это не только Node.js, автор Джеймс М Снелл
Небраузерные среды исполнения JavaScript растут, расширяются и развиваются. Когда-то единственным вариантом был Node.js. Сегодня у нас также есть Deno, Bun, Cloudflare Workers и другие. Чем отличаются эти режимы работы? Чем они похожи? И как разработчик может использовать их все?
источник
✍️ @nodejs_lib
Небраузерные среды исполнения JavaScript растут, расширяются и развиваются. Когда-то единственным вариантом был Node.js. Сегодня у нас также есть Deno, Bun, Cloudflare Workers и другие. Чем отличаются эти режимы работы? Чем они похожи? И как разработчик может использовать их все?
источник
✍️ @nodejs_lib
Кто быстрее выполняет Lambda - NodeJS или LLRT? Мы провели сравнительный анализ.
https://learnaws.io/blog/node-vs-llrt
✍️ @nodejs_lib
https://learnaws.io/blog/node-vs-llrt
✍️ @nodejs_lib
Введение в Node.js Performance API
Вы когда-нибудь сталкивались с ситуацией, когда ваше приложение тормозит, влияя на работу пользователей медленной загрузкой? Точное определение узких мест производительности в коде вашего приложения часто похоже на поиск иголки в стоге сена.
https://betterstack.com/community/guides/scaling-nodejs/performance-apis/
✍️ @nodejs_lib
Вы когда-нибудь сталкивались с ситуацией, когда ваше приложение тормозит, влияя на работу пользователей медленной загрузкой? Точное определение узких мест производительности в коде вашего приложения часто похоже на поиск иголки в стоге сена.
https://betterstack.com/community/guides/scaling-nodejs/performance-apis/
✍️ @nodejs_lib
Как реализовать ограничение скорости в Express для Node.js
Ограничение скорости - это фундаментальный механизм контроля количества запросов, которые клиент может сделать к серверу за определенный промежуток времени. В мире, где более 30 % веб-трафика поступает от вредоносных ботов, такая проактивная стратегия крайне важна для защиты серверов от злоумышленников.
В этом уроке вы познакомитесь с концепцией ограничения скорости и поймете, зачем она нужна в бэкенде Node.js. Затем вы узнаете, как реализовать его в Express, чтобы блокировать или замедлять входящие избыточные запросы.
Пришло время стать экспертом по ограничению скорости в Node.js!
https://blog.appsignal.com/2024/04/03/how-to-implement-rate-limiting-in-express-for-nodejs.html
✍️ @nodejs_lib
Ограничение скорости - это фундаментальный механизм контроля количества запросов, которые клиент может сделать к серверу за определенный промежуток времени. В мире, где более 30 % веб-трафика поступает от вредоносных ботов, такая проактивная стратегия крайне важна для защиты серверов от злоумышленников.
В этом уроке вы познакомитесь с концепцией ограничения скорости и поймете, зачем она нужна в бэкенде Node.js. Затем вы узнаете, как реализовать его в Express, чтобы блокировать или замедлять входящие избыточные запросы.
Пришло время стать экспертом по ограничению скорости в Node.js!
https://blog.appsignal.com/2024/04/03/how-to-implement-rate-limiting-in-express-for-nodejs.html
✍️ @nodejs_lib
Импорт ES-модулей в Node.js и браузере
Для недавнего проекта мне нужно было иметь некоторый JS-код (в нескольких файлах), доступный для тестирования из командной строки с помощью Node.js, но также иметь возможность загрузить тот же код на веб-страницу, чтобы вызывать его непосредственно из браузера.
Я уже сталкивался с подобной проблемой для своего проекта ассемблера и симулятора 8080 в браузере и использовал сочетание CommonJS с инструментом bundler, чтобы заставить его работать. Но сейчас мы живем в 2024 году, и CommonJS, как предполагается, будет постепенно отменяться. Поэтому моей целью для нового проекта было сделать это с помощью ES-модулей (ESM) и без каких-либо отдельных инструментов.
Давайте посмотрим, как это работает.
https://eli.thegreenplace.net/2023/es-module-imports-in-nodejs-and-the-browser/
✍️ @nodejs_lib
Для недавнего проекта мне нужно было иметь некоторый JS-код (в нескольких файлах), доступный для тестирования из командной строки с помощью Node.js, но также иметь возможность загрузить тот же код на веб-страницу, чтобы вызывать его непосредственно из браузера.
Я уже сталкивался с подобной проблемой для своего проекта ассемблера и симулятора 8080 в браузере и использовал сочетание CommonJS с инструментом bundler, чтобы заставить его работать. Но сейчас мы живем в 2024 году, и CommonJS, как предполагается, будет постепенно отменяться. Поэтому моей целью для нового проекта было сделать это с помощью ES-модулей (ESM) и без каких-либо отдельных инструментов.
Давайте посмотрим, как это работает.
https://eli.thegreenplace.net/2023/es-module-imports-in-nodejs-and-the-browser/
✍️ @nodejs_lib
Полное визуальное руководство по пониманию цикла событий Node.js
https://www.builder.io/blog/visual-guide-to-nodejs-event-loop
✍️ @nodejs_lib
https://www.builder.io/blog/visual-guide-to-nodejs-event-loop
✍️ @nodejs_lib
Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js
Я разрабатываю эмулятор сервера для Lineage 2 Chronicle 1: Harbingers of war на Node.js.
Столкнулся с проблемой синхронизации скорости персонажа на сервере с клиентом. Когда в игре вы нажимаете мышкой в то место, куда хотите перейти то происходит плавный переход с анимацией движения. На сервере в этот момент тоже происходит движение по таймеру, но не такое плавное.
https://habr.com/ru/articles/814529/
✍️ @nodejs_lib
Я разрабатываю эмулятор сервера для Lineage 2 Chronicle 1: Harbingers of war на Node.js.
Столкнулся с проблемой синхронизации скорости персонажа на сервере с клиентом. Когда в игре вы нажимаете мышкой в то место, куда хотите перейти то происходит плавный переход с анимацией движения. На сервере в этот момент тоже происходит движение по таймеру, но не такое плавное.
https://habr.com/ru/articles/814529/
✍️ @nodejs_lib
Media is too big
VIEW IN TELEGRAM
Собеседование на middle Node.js разработчика
Разделы видео:
0:00 - Введение
0:30 - Знакомство
2:30 - Как Node.js исполняет код
9:00 - Потоки и асинхронность Node.js, event loop
23:35 - NPM и packege.json
32:41 - Паттерны
34:40 - ORM для Node.js
41:50 - Заключение
источник
✍️ @nodejs_lib
Разделы видео:
0:00 - Введение
0:30 - Знакомство
2:30 - Как Node.js исполняет код
9:00 - Потоки и асинхронность Node.js, event loop
23:35 - NPM и packege.json
32:41 - Паттерны
34:40 - ORM для Node.js
41:50 - Заключение
источник
✍️ @nodejs_lib
Node.js task runner
Недавно я добавил таск раннер в Node.js. Это означает, что вместо того, чтобы запускать npm run test в вашем проекте, вы теперь можете запустить «node -run test». Цель этого изменения - сократить количество циклов процессора, которые мы тратим на выполнение простого скрипта.
https://polar.sh/anonrig/posts/node-js-task-runner
✍️ @nodejs_lib
Недавно я добавил таск раннер в Node.js. Это означает, что вместо того, чтобы запускать npm run test в вашем проекте, вы теперь можете запустить «node -run test». Цель этого изменения - сократить количество циклов процессора, которые мы тратим на выполнение простого скрипта.
https://polar.sh/anonrig/posts/node-js-task-runner
✍️ @nodejs_lib
Packt.Node.js.for.Beginners.pdf
11.9 MB
Node.js for Beginners: A comprehensive guide to building efficient, full-featured web applications with Node.js
Автор: Ulises Gascón (2024)
Сначала вы изучите основы Node.js и освежите свои знания JavaScript, а затем перейдете к разработке современных веб-приложений с использованием Node.js, Express.js и MongoDB. Вы изучите такие сложные темы, как асинхронное программирование, библиотеки npm, событийно-ориентированные шаблоны для HTTP-серверов, RESTful API, JSON Web Tokens и многое другое. В заключительных главах вы пройдете через процесс развертывания и узнаете о различных стратегиях, включая установку на пустом металле, виртуальные машины и контейнеризацию с помощью Docker. Вы также узнаете, как использовать Process Manager 2 (PM2) для эффективного управления процессами.
✍️ @nodejs_lib
Автор: Ulises Gascón (2024)
Сначала вы изучите основы Node.js и освежите свои знания JavaScript, а затем перейдете к разработке современных веб-приложений с использованием Node.js, Express.js и MongoDB. Вы изучите такие сложные темы, как асинхронное программирование, библиотеки npm, событийно-ориентированные шаблоны для HTTP-серверов, RESTful API, JSON Web Tokens и многое другое. В заключительных главах вы пройдете через процесс развертывания и узнаете о различных стратегиях, включая установку на пустом металле, виртуальные машины и контейнеризацию с помощью Docker. Вы также узнаете, как использовать Process Manager 2 (PM2) для эффективного управления процессами.
✍️ @nodejs_lib
React Node.js E-Commerce App Full Tutorial (REDUX - Stripe - JWT ) - MERN Stack Shopping App
0:00 Introduction
02:10 Installing E-commerce UI and API
05:04 How to Use React Router
13:42 How to Fetch and Filter Products in React
36:24 Fetching Single Product
49:02 Redux Toolkit Shopping Cart
01:04:52 React Shopping Cart
01:09:18 React Stripe Payment Tutorial
01:22:08 React Redux Toolkit Authentication
01:35:18 Redux Toolkit Persist Tutorial
01:41:08 React E-commerce Admin Dashboard
02:00:25 Fetching Last n Elements from Node API
02:09:41 React.js Chart Tutorial
02:15:25 React.js Calculating Revenue
02:20:58 Redux Toolkit CRUD Operations
02:53:50 React How to Handle Multiple Inputs in One State
02:58:14 React Firebase Storage Upload Tutorial
03:09:20 Homework
03:11:24 Outro
https://www.youtube.com/watch?v=y66RgYMAgSo
✍️ @nodejs_lib
0:00 Introduction
02:10 Installing E-commerce UI and API
05:04 How to Use React Router
13:42 How to Fetch and Filter Products in React
36:24 Fetching Single Product
49:02 Redux Toolkit Shopping Cart
01:04:52 React Shopping Cart
01:09:18 React Stripe Payment Tutorial
01:22:08 React Redux Toolkit Authentication
01:35:18 Redux Toolkit Persist Tutorial
01:41:08 React E-commerce Admin Dashboard
02:00:25 Fetching Last n Elements from Node API
02:09:41 React.js Chart Tutorial
02:15:25 React.js Calculating Revenue
02:20:58 Redux Toolkit CRUD Operations
02:53:50 React How to Handle Multiple Inputs in One State
02:58:14 React Firebase Storage Upload Tutorial
03:09:20 Homework
03:11:24 Outro
https://www.youtube.com/watch?v=y66RgYMAgSo
✍️ @nodejs_lib
YouTube
React Node.js E-Commerce App Full Tutorial (REDUX - Stripe - JWT ) - MERN Stack Shopping App
E-commerce app from scratch. MERN Stack e-commerce project for beginners. React, Node.js Full-Stack shopping app course using Redux, Stripe, and JWT. React shopping cart tutorial.
You are watching the 3rd part.
Watch part 1 (React Design): https://youtu.be/c1xTDSIXit8…
You are watching the 3rd part.
Watch part 1 (React Design): https://youtu.be/c1xTDSIXit8…
Многопоточность с использованием рабочих потоков в Node.js
Прелесть Node заключается в том, что, хотя основной цикл событий выполняется в одном потоке, некоторые трудоемкие задачи автоматически выгружаются в отдельный рабочий пул. К ним относятся DNS и файловая система (за исключением fs.FSWatcher()), а также криптографический и Zlib API, требующие большого количества операций ввода-вывода. Все они имеют синхронный вариант, который будет блокировать основной поток.
https://blog.appsignal.com/2023/07/05/multithreading-with-worker-threads-in-nodejs.html
✍️ @nodejs_lib
Прелесть Node заключается в том, что, хотя основной цикл событий выполняется в одном потоке, некоторые трудоемкие задачи автоматически выгружаются в отдельный рабочий пул. К ним относятся DNS и файловая система (за исключением fs.FSWatcher()), а также криптографический и Zlib API, требующие большого количества операций ввода-вывода. Все они имеют синхронный вариант, который будет блокировать основной поток.
https://blog.appsignal.com/2023/07/05/multithreading-with-worker-threads-in-nodejs.html
✍️ @nodejs_lib
Бекпорт на примере Node.js v22 и Windows 7
Что делать если надо запустить современный софт в устаревшем окружении? Рассказываем о процессе «портирования назад» последней версии Node.js на Windows7.
https://habr.com/ru/articles/822817/
✍️ @nodejs_lib
Что делать если надо запустить современный софт в устаревшем окружении? Рассказываем о процессе «портирования назад» последней версии Node.js на Windows7.
https://habr.com/ru/articles/822817/
✍️ @nodejs_lib
Создание ленты активности GitHub с помощью Node.js и Socket.io
В этой статье мы расскажем о том, как создать ленту активности непосредственно в вашем продукте с помощью Node.js и Socket.io.
Допустим, мы создаем B2B SaaS-приложение для разработчиков, и оно должно показывать ленту активности, происходящую в GitHub-репозитории их организации. Любые коммиты, добавленные в репозиторий, должны отображаться в приложении в режиме реального времени. Именно это мы и создадим в этом посте. Готовый проект можно найти на GitHub.
https://knock.app/blog/building-a-github-activity-feed-with-nodejs-and-socket-io
✍️ @nodejs_lib
В этой статье мы расскажем о том, как создать ленту активности непосредственно в вашем продукте с помощью Node.js и Socket.io.
Допустим, мы создаем B2B SaaS-приложение для разработчиков, и оно должно показывать ленту активности, происходящую в GitHub-репозитории их организации. Любые коммиты, добавленные в репозиторий, должны отображаться в приложении в режиме реального времени. Именно это мы и создадим в этом посте. Готовый проект можно найти на GitHub.
https://knock.app/blog/building-a-github-activity-feed-with-nodejs-and-socket-io
✍️ @nodejs_lib
Knock
Building a GitHub activity feed with Node.js and Socket.io | Knock
An in-depth guide that covers building a real-time activity feed using Node.js, Socket.io and GitHub webhooks.
Understanding Offset and Cursor-Based Pagination in Node.js
Pagination means dividing a big chunk of data into smaller pages. It unlocks performance benefits for the backend, while also improving UX by sending manageable pieces of data to a client.
In this article, we'll explore offset-based and cursor-based server-side pagination approaches, compare them, and implement cursor-based pagination in Node.js.
https://blog.appsignal.com/2024/05/15/understanding-offset-and-cursor-based-pagination-in-nodejs.html
✍️ @nodejs_lib
Pagination means dividing a big chunk of data into smaller pages. It unlocks performance benefits for the backend, while also improving UX by sending manageable pieces of data to a client.
In this article, we'll explore offset-based and cursor-based server-side pagination approaches, compare them, and implement cursor-based pagination in Node.js.
https://blog.appsignal.com/2024/05/15/understanding-offset-and-cursor-based-pagination-in-nodejs.html
✍️ @nodejs_lib
Hot Hook
Hot Hook is a simple and lightweight library for adding hot module replacement in NodeJS with ESM.
You know how in frameworks like React or VueJS, you edit a file and the page updates automatically without needing to refresh? Well, it's the same concept but for NodeJS.
Take an Express server, for example. The most common development process involves watching the entire project with tools like nodemon and restarting the whole server whenever a file changes. With Hot Hook, you no longer need to restart the entire server; you can make it so only the changed module/file is reloaded. This provides a much faster DX and feedback loop.
The library is designed to be very light and simple. It doesn't perform any dark magic, no AST parsing, no code transformation, no bundling. It just reloads the changed module.
https://github.com/julien-R44/hot-hook
✍️ @nodejs_lib
Hot Hook is a simple and lightweight library for adding hot module replacement in NodeJS with ESM.
You know how in frameworks like React or VueJS, you edit a file and the page updates automatically without needing to refresh? Well, it's the same concept but for NodeJS.
Take an Express server, for example. The most common development process involves watching the entire project with tools like nodemon and restarting the whole server whenever a file changes. With Hot Hook, you no longer need to restart the entire server; you can make it so only the changed module/file is reloaded. This provides a much faster DX and feedback loop.
The library is designed to be very light and simple. It doesn't perform any dark magic, no AST parsing, no code transformation, no bundling. It just reloads the changed module.
https://github.com/julien-R44/hot-hook
✍️ @nodejs_lib
GitHub
GitHub - Julien-R44/hot-hook: 🪝 Simple HMR for NodeJS + ESM
🪝 Simple HMR for NodeJS + ESM. Contribute to Julien-R44/hot-hook development by creating an account on GitHub.
How to handle multiple API requests in your NodeJS Application
Unlike hackathons, when you’re building a NodeJS API that’s going to be used in the real world, you want to make sure that it’s capable of handling concurrency issues. Even though NodeJS is asynchronous by default, it has its limitations while handling multiple requests which require CPU-intensive tasks. By CPU intensive, I mean performing cryptographic operations, processing image/video/audio files, parsing large amounts of data such as XML/JSON/YAML, Mathematical Computations, Data Compressions, Machine Learning models, etc.
https://medium.com/@abhinavcv007/how-to-handle-multiple-api-requests-in-your-nodejs-application-cfa298e11b28
✍️ @nodejs_lib
Unlike hackathons, when you’re building a NodeJS API that’s going to be used in the real world, you want to make sure that it’s capable of handling concurrency issues. Even though NodeJS is asynchronous by default, it has its limitations while handling multiple requests which require CPU-intensive tasks. By CPU intensive, I mean performing cryptographic operations, processing image/video/audio files, parsing large amounts of data such as XML/JSON/YAML, Mathematical Computations, Data Compressions, Machine Learning models, etc.
https://medium.com/@abhinavcv007/how-to-handle-multiple-api-requests-in-your-nodejs-application-cfa298e11b28
✍️ @nodejs_lib
Node.js Test Runner: A Beginner's Guide
Historically, Node.js lacked an integrated test runner, which forced developers to rely on third-party frameworks such as Jest or Mocha.
This changed when James M. Snell proposed on GitHub that a test runner should be included within Node.js. The proposal developed over time and was eventually merged into the core of Node.js.
As a result, Node version 18 or higher includes a built-in test runner, which removes the need for external testing dependencies.
In this article, you will explore the features of the new test runner along with some examples.
https://betterstack.com/community/guides/testing/nodejs-test-runner/
✍️ @nodejs_lib
Historically, Node.js lacked an integrated test runner, which forced developers to rely on third-party frameworks such as Jest or Mocha.
This changed when James M. Snell proposed on GitHub that a test runner should be included within Node.js. The proposal developed over time and was eventually merged into the core of Node.js.
As a result, Node version 18 or higher includes a built-in test runner, which removes the need for external testing dependencies.
In this article, you will explore the features of the new test runner along with some examples.
https://betterstack.com/community/guides/testing/nodejs-test-runner/
✍️ @nodejs_lib
Using Node.js's test runner
Node.js has a flexible and robust built-in test runner. This guide will show you how to set up and use it.
https://nodejs.org/en/learn/test-runner/using-test-runner
✍️ @nodejs_lib
Node.js has a flexible and robust built-in test runner. This guide will show you how to set up and use it.
https://nodejs.org/en/learn/test-runner/using-test-runner
✍️ @nodejs_lib