Node JS
описание
Подборки по Node js и все что с ним связано. По всем вопросам @evgenycarter
1 984
подписчиков
Охват к подписчикам
71,9%
ERR
Реакции к просмотрам
0,42%
119 на 20 постов
Пересылки к просмотрам
1,39%
396
Постов в день
0,0
всего 20
Где отзываются чаще
доля реакций к просмотрам- 12 апр. 2025 г.Потоки записи в Node.js — практическое руководство Node.js предоставляет мощную абстракцию ввода-вывода — Streams (потоки), которые позволяют эффективно обрабатывать данные частями, особенно когда речь идёт о больших объёмах данных. В этом руководстве мы сосредоточимся на Writable Streams — потоках, в которые можно записывать данные. Что такое Writable Stream? Writable Stream — это абстракция для источника данных, в который можно записывать. Примеры: - fs.createWriteStream() — запись в файл - http.request() — отправка HTTP-запросов - net.Socket — запись в TCP-сокет - process.stdout — вывод в консоль Основные методы и события Метод .write(chunk, [encoding], [callback]) Используется для записи данных в поток. Возвращает true, если поток готов принять ещё данные, иначе — false. const fs = require('fs'); const stream = fs.createWriteStream('output.txt'); const result = stream.write('Hello, world!'); console.log(result); // true или false Метод .end([chunk], [encoding], [callback]) Завершает поток. При необходимости можно передать финальный кусок данных. stream.end('Final data'); События - drain — вызывается, когда поток снова готов к записи (если ранее вернул false). - finish — вызывается после завершения записи (после .end()). - error — при возникновении ошибки. stream.on('finish', () => console.log('Запись завершена.')); stream.on('error', err => console.error('Ошибка:', err)); Управление потоком вручную Когда stream.write() возвращает false, это означает, что внутренний буфер переполнен. Чтобы избежать перегрузки, стоит дождаться события drain: function writeMany(stream, data, times) { let i = 0; function write() { while (i < times) { const ok = stream.write(data); if (!ok) { stream.once('drain', write); return; } i++; } stream.end(); } write(); } writeMany(fs.createWriteStream('big.txt'), 'data\n', 10000); Пользовательские Writable Streams Вы можете создать свой Writable Stream, расширив Writable из модуля stream: const { Writable } = require('stream'); class Logger extends Writable { _write(chunk, encoding, callback) { console.log(`LOG: ${chunk.toString()}`); callback(); } } const logger = new Logger(); logger.write('Hello\n'); logger.end('Bye\n'); Итого Writable Streams — ключевой инструмент в Node.js для эффективной записи данных. Они позволяют управлять потоком, обрабатывать ошибки и даже создавать свои реализации. https://pavel-romanov.com/writable-streams-in-nodejs-a-practical-guide ✍️ @nodejs_lib0,95%
- 18 мар. 2025 г.Переходим с Node.js на Go… но это не точно Создатель Node.js Райан Даль в одном из своих интервью заявил, что для написания серверов предпочёл бы Go. Это интервью состоялось в 2017 году, с тех пор Райан переходил на Rust, даже написал на нём еще одну среду для выполнения серверного JS – Denо. Но джин уже выпущен из бутылки. Стали даже появляться заявления о скорой кончине Node.js. Фразу продолжают вспоминать в спорах по сей день, и сейчас можно увидеть статьи о переходе с Ноды на Голанг. Мне же представляется, что вопрос о переходе между этими двумя технологиями едва ли стоит – эти решения для разных ниш. Прикладные API-сервера, для которых чаще всего используют Ноду устроены таким образом, что получить выигрыш производительности переходом на Go довольно трудно, а вот замедлить разработку очень легко. https://habr.com/ru/articles/890882/ ✍️ @nodejs_lib0,81%
- 28 мая 2025 г.Как работает Node.js После прочтения этой статьи вы хорошо поймете следующее: 🟢как работает цикл событий (event loop) в Node.js, включая все его фазы 🟢как Node.js выполняет JavaScript в одном потоке (single thread) 🟢как Node.js использует библиотеку libuv и внутренние API для обработки асинхронных операций 🟢почему знание работы цикла событий так важно для написания эффективного серверного кода Понять, как JS работает "под капотом" в браузере (см. эту короткую 15-минутную статью), проще, чем понять устройство Node.js. В браузере нет сложных фаз и многослойных механизмов, как в Node.js. Но почему в Node.js все устроено сложнее? Зачем столько фаз, которые так непросто понять? https://habr.com/ru/companies/timeweb/articles/910514/ original https://www.deepintodev.com/blog/how-nodejs-works-behind-the-scenes ✍️ @nodejs_lib0,69%
- 22 июл. 2025 г.Shell scripting with Node.js Зачем читать эту книгу? Эта книга посвящена написанию shell-скриптов с использованием Node.js. Вы узнаете: Как работает Node.js: - Его основы: архитектура, цикл событий (event loop) и т.д. - Его API: как использовать глобальные переменные и модули. Что такое пакеты npm (де-факто стандарт пакетов для JavaScript). Как использовать npm (менеджер пакетов, входящий в состав Node.js) для: - Установки и управления пакетами. - Создания и публикации пакетов. Как писать кроссплатформенные скрипты пакетов для выполнения задач разработки, таких как генерация артефактов и запуск тестов. Как применить все вышеперечисленные знания для создания и развёртывания кроссплатформенных shell-скриптов. https://exploringjs.com/nodejs-shell-scripting/ ✍️ @nodejs_lib0,66%
- 28 июн. 2025 г.📚 OpenJS Node.js Application Developer (JSNAD) Certification Guide (2024) ✍️ Автор: Liora Venith 📃 Страниц: 424 Автор помогает разработчикам подготовиться к сертификации JSNAD по Node.js, углубляя знания и навыки в разработке приложений. Автор охватывает ключевые концепции, такие как асинхронное программирование, интеграция middleware и продвинутые методы маршрутизации. Кроме теории, книга содержит тестовые задания, практические упражнения и детальные разборы сложных тем, упрощающие понимание сложных механизмов Node.js. Также доступны примеры проектов и репозитории с кодом, которые помогают закрепить знания и подготовиться к реальным задачам сертификационного экзамена. ✍️ @nodejs_lib0,65%
- 23 мая 2025 г.💡 Парсинг неструктурированных DOCX в TypeScript/Node.js: как я решил нетривиальную задачу Недавно я взял фриланс-проект, где нужно было преобразовать «почти неструктурированные» DOCX-файлы в структурированные данные, например, в JSON. Сначала я думал, что справлюсь за пару дней. Но в итоге потратил больше пяти. 📄 Что такое «почти неструктурированные» DOCX? Файлы генерируются сервером и содержат несколько статей. Каждая статья обычно включает заголовок, автора, дополнительную информацию и резюме. Однако структура варьируется: где-то нет автора, где-то несколько, а вместо резюме — комментарии. 🔍 Проблемы с существующими библиотеками: * officeparser: извлекает только текст, без структуры. * docx4js: не имеет типов для TypeScript и сложно использовать. * docx: больше подходит для создания DOCX, а не для парсинга. 🛠️ Моё решение: Поняв, что DOCX — это ZIP-архив с XML-файлами, я решил сам обработать document.xml. Использовал fast-xml-parser для преобразования XML в JS-объекты. Однако структура XML оказалась сложной, и пришлось разбираться в ней вручную. 📌 Вывод: Иногда проще написать свой парсер, чем пытаться адаптировать существующие решения. Особенно когда структура данных нестабильна и требует гибкого подхода. https://nguyenhuythanh.com/posts/unstructured-ish-docx-parsing/ ✍️ @nodejs_lib0,61%
- 2 апр. 2025 г.🔍 Трассировка в Node.js: практическое руководство по анализу производительности приложений Когда дело доходит до оптимизации приложений на Node.js, важно понимать, что происходит "под капотом". Именно здесь на помощь приходит трассировка. Она позволяет выявлять узкие места, следить за выполнением кода и улучшать общую производительность. Node.js включает встроенные средства для трассировки — async_hooks, trace_events и инструменты профилирования. Их можно использовать для: - Анализа времени выполнения отдельных операций; - Выявления блокирующих функций; - Понимания взаимодействия между асинхронными событиями. В статье от NodeSource пошагово показано, как: - Включить трассировку через флаг --trace-events-enabled; - Использовать Chrome DevTools для визуализации событий; - Настроить пользовательские события через API trace_events. Также объясняется, как интегрировать трассировку с внешними инструментами (например, Jaeger или OpenTelemetry), чтобы получить распределённую трассировку в микросервисной архитектуре. https://nodesource.com/blog/tracing-nodejs ✍️ @nodejs_lib0,61%
- 23 апр. 2025 г.Профилирование Node.js приложения с помощью Pyroscope (без автоинструментирования) Pyroscope — это мощный инструмент непрерывного профилирования, созданный для мониторинга производительности приложений в реальном времени. В этой статье мы рассмотрим, как быстро развернуть Pyroscope, подключить к нему Node.js приложение и проанализировать поведение кода без использования Grafana Alloy. https://habr.com/ru/articles/902620/ ✍️ @nodejs_lib0,56%
- 28 мая 2025 г.🚀 Открой для себя идеальный путь к лидерству с карьерным тестом от ОЭЗ «Алабуга»! 🌟 Мечтаете о карьере в крупной компании, где ваш потенциал раскроется на полную? Наш тест поможет вам определить вашу уникальную лидерскую роль. Может быть, именно вы станете тем лидером, который выведет команду на новый уровень? После прохождения теста вы можете заполнить заявку и получить приглашение на эксклюзивную лидерскую программу. Участие в программе открывает реальные перспективы трудоустройства в ОЭЗ «Алабуга», предоставляя шанс начать путь к профессиональному признанию. Сделайте первый шаг к своему будущему сегодня! Пройдите тест, подайте заявку и начните строить свою карьеру вместе с нами. 🎯0,50%
- 12 дек.State QUIC в Node.js QUIC — это протокол транспортного уровня на базе UDP, созданный для замены TCP+TLS. Хотя его относят к транспортному уровню, он не похож на другие протоколы этого уровня, такие как TCP или UDP. Значительная часть сложной логики, связанной с работой протокола, фактически выполняется на уровне приложения. Получается интересная ситуация, когда… Основная причина появления QUIC — улучшение производительности. При использовании TCP+TLS необходимо пройти TCP-рукопожатие, затем TLS-рукопожатие, и только после этого можно начинать передачу данных. В сумме это занимает 3 обхода туда-обратно (2 для TCP + 1 для TLS). https://nodevibe.substack.com/p/state-of-quic-in-nodejs ✍️ @nodejs_lib0,40%
- 5 мая 2025 г.Retrieval-Augmented Generation (RAG) на Node.js с Podman AI Lab и React Retrieval-Augmented Generation (RAG) сочетает ИИ-модель со внешней базой знаний, чтобы дать более точные и информированные ответы. В этой статье рассказывается, как создать RAG-чатбот на Node.js, используя Podman AI Lab и React. 🔧 Что входит в стек: * Node.js для серверной логики * React для фронтенда * Podman AI Lab для развёртывания моделей и управления векторными хранилищами * LlamaIndex для индексации и поиска по документам * LangChain для построения цепочек запросов * OpenAI или Ollama как LLM-провайдер 📁 Этапы реализации: 1. Установка и запуск Podman AI Lab 2. Подготовка и загрузка документации (например, Markdown-файлов) 3. Индексация данных с помощью LlamaIndex 4. Создание backend API на Node.js 5. Интеграция с LangChain и вызов LLM 6. Реализация фронтенда на React для общения с ботом 🚀 Фишки: * Поддержка как локальных, так и облачных моделей * Удобный UI для экспериментов с векторами и цепочками * Возможность расширения и кастомизации пайплайнов https://developers.redhat.com/articles/2025/03/10/retrieval-augmented-generation-nodejs-podman-ai-lab-react#node_js_rag_chatbot_recipe ✍️ @nodejs_lib0,38%
- 16 авг. 2025 г.Использование SQL в Node.js с Sequelize Реляционные базы данных используют SQL (Structured Query Language — язык структурированных запросов) как стандартный способ управления и взаимодействия с хранимыми данными. В экосистеме Node.js библиотека Sequelize является одной из самых популярных ORM (Object-Relational Mapping), которая соединяет приложения на Node.js с SQL-базами данных, позволяя работать с данными с помощью привычных идиом JavaScript. В этой статье мы рассмотрим, как использовать Sequelize для подключения к базам данных, выполнения запросов и обработки результатов в проектах на Node.js. Мы разберём основы определения моделей, связей между ними и операций CRUD (Create, Read, Update, Delete — создание, чтение, обновление, удаление), чтобы вы могли уверенно взаимодействовать с SQL-базами данных из ваших приложений на Node.js. https://blog.appsignal.com/2025/06/11/using-sql-in-nodejs-with-sequelize.html ✍️ @nodejs_lib0,28%