we_use_js | Unsorted

Telegram-канал we_use_js - Node.JS [ru] | Серверный JavaScript

11232

Все о разработке backend части на JavaScript (Node JS). А так же: Express JS, Next JS, Nest, Socket.IO Канал на бирже - https://telega.in/c/we_use_js По вопросам рекламы или разработки: @g_abashkin РКН: https://vk.cc/cJPGOP

Subscribe to a channel

Node.JS [ru] | Серверный JavaScript

👩‍💻 Что такое Child Processes в Node.js?

Child Processes — это модуль в Node.js, который позволяет запускать дочерние процессы для выполнения команд в операционной системе. Это полезно для выполнения многозадачных операций, таких как запуск команд оболочки или параллельные вычисления.

➡️ В этом примере создаётся дочерний процесс для выполнения команды ls в терминале и вывода результата в консоль.

const { exec } = require('child_process');

exec('ls', (error, stdout, stderr) => {
if (error) {
console.error(`Ошибка: ${error.message}`);
return;
}
if (stderr) {
console.error(`stderr: ${stderr}`);
return;
}
console.log(`Результат команды:\n${stdout}`);
});


🗣️ Child Processes позволяет запускать системные команды и выполнять параллельные операции вне основного потока Node.js.


🖥 Подробнее тут

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Node.js Test Runner: Руководство для начинающих

Исторически сложилось так, что в Node.js отсутствовал интегрированный прогонщик тестов, что вынуждало разработчиков полагаться на сторонние фреймворки, такие как Jest или Mocha

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Задачка по NodeJS

Создайте приложение на Node.js, которое работает как таймер обратного отсчёта. Программа должна принимать количество секунд в качестве аргумента командной строки и каждую секунду выводить сообщение с оставшимся временем: "Осталось X секунд". Когда отсчёт завершится, программа должна вывести "Время вышло!" и остановиться.

➡️ Пример: если вы запустите программу с аргументом 10, она будет выводить каждую секунду:

Осталось 10 секунд
Осталось 9 секунд
...
Осталось 1 секунда
Время вышло!


Решение задачи ⬇️

const seconds = parseInt(process.argv[2]);

if (isNaN(seconds) || seconds <= 0) {
console.log('Введите корректное количество секунд.');
process.exit(1);
}

let remainingTime = seconds;

const countdown = setInterval(() => {
if (remainingTime > 0) {
console.log(`Осталось ${remainingTime} секунд`);
remainingTime--;
} else {
console.log('Время вышло!');
clearInterval(countdown);
}
}, 1000);

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Как использовать Corepack

Недавно я узнал о corepack, инструменте, работающем с Node.js и решающем множество проблем с менеджерами пакетов. С этого момента буду использовать его в своём процессе разработки.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Что такое Worker Threads в Node.js?

Worker Threads — это модуль в Node.js, который позволяет создавать несколько потоков для выполнения JavaScript кода параллельно. Это полезно для CPU-интенсивных операций, так как основной поток Node.js работает в однопоточном режиме и не подходит для вычислительно сложных задач.

➡️ Пример: В этом примере создаётся воркер для выполнения тяжёлой задачи параллельно с основным потоком.

const { Worker, isMainThread, parentPort } = require('worker_threads');

if (isMainThread) {
const worker = new Worker(__filename);
worker.on('message', (message) => {
console.log(`Сообщение от воркера: ${message}`);
});
} else {
parentPort.postMessage('Выполняется в воркере');
}


🗣️ Worker Threads позволяет выполнять тяжёлые задачи параллельно основному потоку, повышая производительность в многопроцессорных системах.


🖥 Подробнее тут

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Создание npm пакета на TypeScript с поддержкой CommonJS и ESM

Если необходимо создать npm пакет и гарантировать, что его смогут использовать все желающие, нужно, чтобы он поддерживал CommonJS (CJS) и ECMAScript Modules (ESM). Рассмотрим, как создать такой пакет используя TypeScript.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

🎯 Погружайся в «смежные зоны»

Ты специализируешься на backend’е, но frontend для тебя тёмный лес? Или хорошо кодишь, но понятия не имеешь, как работает DevOps?

👉 Совет: раз в неделю уделяй время на изучение чего-то за пределами своей зоны комфорта. Это может быть просмотр видео, разбор чужого кода или маленький проект. Чем шире твои знания, тем проще видеть картину целиком, а значит, и решать задачи эффективнее.

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Борьба с перерендерами в React

На тему мемоизации написано довольно много статей, и все они хорошо раскрывают суть. Но мне часто не хватало шпаргалки, которую можно отправить на вопрос «А как мемоизировать?». В статье речь пойдет исключительно о функциональных компонентах.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👨‍💻Гринатом — ИТ-интегратор Росатома — открывает вакансию системного аналитика!

Ждём кандидатов с опытом работы системным аналитиком в ИТ от 5 лет, навыками проектирования, документирования и интеграций, умением декомпозировать крупные задачи, пониманием принципов построения микросервисной архитектуры ПО и разработки Web-приложений, знанием agile/scrum методологии, BPMN, UML, SQL, OpenProject и Postman. Опыт реализации и внедрения систем ECM, ERP, MES, CRM, HRM будет преимуществом.

🤝С нами вы сможете работать с полным соблюдением ТК РФ в удалённом формате из любого региона с сокращённым днём в пятницу, получать «белую» зарплату 2 раза в месяц, учиться за счёт компании и заботиться о своём здоровье с пакетом ДМС, включающим стоматологию.

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Реверс-инжиниринг 128-битного дракона

Как в 16 байтах кода уместился целый дракон? Разбираем, какие трюки позволяют создавать сложные изображения с минимальным объёмом данных, и переносим эту магию в JavaScript.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Ментальная модель потоков в Node.js

Статья исследует концепцию потоков в Node.js, объясняя их ключевую роль в модулях, таких как fs и http. Рассматриваются основные концепции и ментальная модель, помогающая понять и эффективно использовать потоки.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

⚙️ Что такое process в Node.js и как получить доступ к аргументам командной строки?

process — это глобальный объект в Node.js, который предоставляет информацию и управление текущим процессом. Через process.argv можно получить массив аргументов командной строки.

➡️ Пример:

// Запуск: node script.js привет мир
const args = process.argv.slice(2); // Убираем первые два аргумента (node и имя файла)
console.log(args); // ['привет', 'мир']


🗣️ В этом примере process.argv позволяет извлечь пользовательские аргументы командной строки, что полезно для CLI-приложени


🖥 Подробнее тут

Читать полностью…

Node.JS [ru] | Серверный JavaScript

⚙️ Конвертация даты по временной зоне пользователя в «NestJS», а также ввод и отображение даты в «Angular»

Как добавить новое поле в базу данных и связать его с фронтендом? В статье рассказывается об обновлении таблицы Webhook, создании календаря на Angular и настройке работы с временными зонами и локализацией.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Чтение файла и подсчёт строк

Напишите Node.js скрипт, который читает текстовый файл и выводит количество строк в нём. Если файл не существует, скрипт должен выводить сообщение об ошибке.

Решение задачи🔽

const fs = require('fs');
const filePath = process.argv[2];

if (!filePath) {
console.error('Укажите путь к файлу как аргумент.');
process.exit(1);
}

fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err.message);
return;
}

const lines = data.split('\n').length;
console.log(`Количество строк в файле: ${lines}`);
});

Читать полностью…

Node.JS [ru] | Серверный JavaScript

🧠 Прокачивай мышление через эксперименты

Давно работаешь с одним и тем же инструментом или подходом? Это удобно, но затормаживает рост.

👉 Совет: хотя бы раз в месяц попробуй решить задачу нестандартным способом. Используй новую библиотеку, напиши код на языке, который почти не знаешь, или придумай другой алгоритм. Такие эксперименты ломают шаблоны и учат думать шире.

Читать полностью…

Node.JS [ru] | Серверный JavaScript

Supply Chain атака на npm: Shai-Hulud — угроза, которая заражает проекты

Недавняя атака на экосистему npm под названием Shai-Hulud привлекла внимание разработчиков по всему миру. Это масштабная supply chain атака, которая затронула более 500 пакетов, включая популярные библиотеки, такие как ngx-toastr, tinycolor, react-jsonschema-form-extras и пакеты от CrowdStrike.

Заражённые пакеты содержат вредоносный скрипт bundle.js. Этот скрипт запускает TruffleHog для поиска секретных данных, таких как GitHub токены, NPM ключи или AWS креды, и отправляет их на внешний сервер. Дополнительно создаётся вредоносный workflow в папке .github/workflows, который будет автоматически запускаться при каждом CI-процессе. В итоге, атака действует как червь, распространяясь через каждый новый пакет, заражая downstream-проекты.


ℹ️ Что делать разработчикам

Проверить проекты на наличие заражённых версий пакетов
Ротировать npm-токены, GitHub PAT и облачные креды, чтобы минимизировать последствия
Аудитировать CI/CD конфигурации для выявления подозрительных изменений
Обновлять пакеты только из доверенных источников, избегать использования сомнительных версий


📌 Supply chain атаки становятся всё более изощрёнными и опасными. Ранее мы переживали только за typosquatting, а теперь столкнулись с реальными «npm-червями», которые могут заразить проекты на всех уровнях. Если вы работаете с публичными пакетами, регулярный аудит зависимостей и CI/CD — теперь часть обязательной практики.

🚪 Frontender's notes

Читать полностью…

Node.JS [ru] | Серверный JavaScript

➡️ Самые интересные статьи за последние дни:

Как мы заработали 100 000 рублей за 3 месяца, запустив простой конвертер картинок в США

Дело было вечером или Создаем веб-приложение за 5 часов

Разработка архитектуры хранения данных для сайта на «Битрикс»

Как не гундеть, а доработать веб-сервис самому без помощи разработчиков

Трассировка OpenTelemetry в 200 строк кода

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Как использовать файловую систему в Node.js

Веб-приложениям не всегда нужна запись в файловую систему, но Node.js предоставляет для этого обширный интерфейс прикладного программирования (API). Это может понадобиться, если вы ведёте логи отладки, передаёте файлы на сервер или с сервера, или создаёте инструменты командной строки.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

🛠 17 суперинструментов для разработки фронтенда

Подборка опенсорсных библиотек на все случаи жизни – от создания графиков и диаграмм до масштабирования проекта с помощью распределенного выполнения задач и кэширования вычислений.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 JavaScript: Обзор фреймворков и выбор для новичков

В этой статье мы рассмотрим различные фреймворки JavaScript и поможем новичкам определиться с выбором инструмента для своих проектов.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

➡️ Самые интересные статьи за последние дни:

Зачем нужен сертифицированный WAF и когда его стоит использовать? Обзор и настройка файрвола веб-приложений

«Безумный» CSS квиз от гика

Работа с куки-файлами хуже сапёрного дела

Воспоминания о GeoCities, предтече социальных сетей из 1990-х годов

Отслеживание позиций торгового робота Московской биржи через CSV файл

Читать полностью…

Node.JS [ru] | Серверный JavaScript

🎯 Работай в коротких циклах

Залипаешь на задаче, а потом понимаешь, что полдня ушло, а результата нет?

👉 Совет: используй метод Pomodoro или спринты по 30-40 минут. Устанавливай себе небольшие цели: например, «разобраться с логикой функции», «добавить обработку ошибок». Это удерживает фокус и помогает видеть прогресс.

Читать полностью…

Node.JS [ru] | Серверный JavaScript

⚙️ Что такое process.nextTick в Node.js и зачем он используется?

process.nextTick позволяет выполнять функцию сразу после текущей операции, но перед началом следующего цикла событий (event loop). Это полезно для выполнения задач с высоким приоритетом.

➡️ Пример:

console.log('Начало');

process.nextTick(() => {
console.log('Выполнено в nextTick');
});

console.log('Конец');

// Вывод:
// Начало
// Конец
// Выполнено в nextTick


🗣️ В этом примере process.nextTick выполняет функцию между выводом "Конец" и началом следующего цикла событий. Это помогает при обработке срочных задач.


🖥 Подробнее тут

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Отладка JavaScript в Chrome DevTools для начинающих фронтендеров

Рассмотрим встроенные инструменты отладки в браузере, которые помогут ускорить поиск и исправление ошибок в JS. Вместо console.log разберем более мощные техники для анализа и диагностики кода.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

📈 Подборка статей для вашей карьеры

История: работа в чешском Red Hat

Циничные заметки о карьере в IT от «гейткипера»

Рецензия на книгу “Изучаем паттерны проектирования JavaScript, 2-е издание”

Всероссийский рейтинг IT-брендов работодателей 2024

Моя петиция EB-1A на грин-карту талантов, одобренная с первой попытки

Читать полностью…

Node.JS [ru] | Серверный JavaScript

🎮 Пишем геймтон на nodejs!

Многие участвовали в хакатонах и гейм-тонах, но задумывались ли вы, как они создаются изнутри? Автор статьи пошёл дальше и с нуля разработал собственный геймтон на стеке Node.js + Prisma + Vue.js + Fastify. В материале подробно разбирается архитектура проекта, работа API, механика игры и даже тонкости расчёта попаданий по холсту.

Игровая идея проста: у вас есть катапульта, палитра цветов и задача максимально точно воспроизвести картинку уровня на виртуальном холсте. Можно подключиться к готовому соревнованию или даже запустить локально свой геймтон со своими правилами.

• Хороший разбор фулстек-приложения с чистым кодом и примерами
• Практическое использование Fastify, Prisma, canvas и TypeScript
• Интересный пример геймификации API


А вы пробовали писать игры или геймификацию на Node.js?

Полностью ознакомиться со статьёй

🚪 Frontender's notes

Читать полностью…

Node.JS [ru] | Серверный JavaScript

📈 Подборка статей для вашей карьеры

В какой момент профессия программиста свернула не туда?

Офис Intel в Израиле отменил бесплатный кофе

Войти в IT – в 37 и с дипломом филфака

Путь к мастерству: Как стать успешным разработчиком

Галера от HH или джуны по-дешевке

Читать полностью…

Node.JS [ru] | Серверный JavaScript

➡️ Самые интересные статьи за последние дни:

Сравнение Gitlab cache и Gitlab artifacts

JavaScript: Удобство или Угроза? Размышления о Приватности и Вебе

Как мы учили немонохромные SVG-логотипы краситься самостоятельно

Разбираемся с цветами: пространства, иллюзии и квантование

Как приготовить обфускацию в JavaScript и не сжечь лабораторию: AST, babel, плагины

Читать полностью…

Node.JS [ru] | Серверный JavaScript

👩‍💻 Как за 10 минут создать тестировщик нагрузки для API на Node.js

Почему разработка собственного инструмента для нагрузки на API иногда оказывается лучшим выбором? В статье обсуждается реальный кейс: задачи тестирования производительности, ограничения Postman и сложность JMeter. Узнайте, как и зачем был создан простой и эффективный API-лоадер на Node.js.

Читать...

Читать полностью…

Node.JS [ru] | Серверный JavaScript

➡️ Создаем Hamster Kombat почти с нуля. Практика по Vue 3 и Telegram Mini Apps

В статье рассказывается, как создать Telegram-тапалку с нуля, используя современный стек технологий. Вы освоите Serverless-подход, разработку на Node.js, Vue, Supabase и деплой проектов в облаке.

Читать...

Читать полностью…
Subscribe to a channel