Рассмотрим несколько вариантов работы с событиями в Node.js. В этом посте вы узнаете про:
- Создание собственного эмиттера событий
- Передача данных через события
- Расширенное управление событиями
- Использование обработчика
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍6🤝3
📖 Прикладные структуры данных и алгоритмы
⬇️ Скачать книгу
⚙ Backend Ready | #книга
Книга предлагает практический подход к изучению основ алгоритмов и структур данных, необходимых для решения реальных задач программирования.
Автор: Джей Венгроу
Год: 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
•
stream.pipe()
— перенаправляет данные из одного потока в другой. Используется, когда нужно просто передать данные, например, из файла в HTTP-ответ. Автоматически управляет процессом передачи.•
stream.on()
— позволяет обрабатывать события потока вручную, такие как получение данных, завершение потока и ошибки. Предоставляет больший контроль и гибкость для сложных сценариев.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Virtual Circuit Board — это игра-симулятор, позволяющая пользователям проектировать и тестировать цифровые схемы, используя настраиваемые логические компоненты и цепи, что делает её идеальной для обучения и экспериментов в электронике.
⚙ Backend Ready | #игра
📌 Ссылка на игру: Steam🙄
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
👍6🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Mu Complex — это хакерская головоломка, в которой игроку предстоит решать задачи, используя реальные командные строки и программы для взлома различных систем и раскрытия секретов корпорации.
⚙ Backend Ready | #игра
📌 Ссылка на игру: Steam🙄
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Node.js предоставляет класс EventEmitter, который позволяет создавать объекты, способные генерировать и обрабатывать события.
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
2. Подписка и генерация событий
Наблюдатели могут подписываться на события и реагировать на них, используя метод on. Когда событие генерируется с помощью emit, все подписанные обработчики будут вызваны.
const myEmitter = new MyEmitter();
myEmitter.on('event', () => {
console.log('Произошло событие!');
});
myEmitter.emit('event');
3. Применение в реальных сценариях
Представьте, что у вас есть система уведомлений, которая должна оповещать пользователей о новых сообщениях. С помощью EventEmitter можно легко реализовать подобный функционал:
const notificationEmitter = new EventEmitter();
notificationEmitter.on('newMessage', (message) => {
console.log(`Новое сообщение: ${message}`);
});
// Генерация нового сообщения
notificationEmitter.emit('newMessage', 'Привет, как дела?');
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Media is too big
VIEW IN TELEGRAM
awesome backend — репозиторий, в котором собрано множество материалов для изучения бэкенда. Тут есть всё - туториалы на ютубе, статьи с разбором технологий и теоретичесекие материалы.
⚙ Backend Ready | #репозиторий
📌 Ссылочка на репозиторий: Github😸
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
the-algorithms — сайт, который предоставляет обширную коллекцию алгоритмов и структур данных, реализованных на различных языках программирования.
📌 Ссылочка: the-algorithms.com
⚙ Backend Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
📖 Криптография и взлом шифров на python
⬇️ Скачать книгу
⚙ Backend Ready | #книга
Введение в мир криптографии, где объясняются основы шифрования и методов взлома с примерами на языке Python.
Автор: Свейгарт Эл
Год: 2020
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Иногда в приложении на Node.js нужно запустить сторонние программы или команды прямо из кода. Для таких задач идеально подходит модуль child_process — он позволяет интегрировать всё, от выполнения простых команд до создания сложных дочерних процессов.
1. Запускаем системные команды с exec — самый простой способ: вы можете выполнить команду вроде ls, а результат получить сразу в виде текста:
const { exec } = require('child_process');
exec('ls', (error, stdout) => {
if (error) console.error(`Ошибка: ${error.message}`);
else console.log(`Результат:\n${stdout}`);
});
2. Обработка больших данных с помощью spawn — если команда выдаёт много данных, например, потоковый вывод, используйте spawn:
const { spawn } = require('child_process');
const process = spawn('node', ['-e', 'console.log("Привет!")']);
process.stdout.on('data', (data) => console.log(`Вывод: ${data}`));
3. Общение с процессами через fork — иногда нужно передать данные в процесс и получить ответ, для этого существует метод fork:
const { fork } = require('child_process');
const worker = fork('./worker.js');
worker.send({ action: 'calculate', value: 10 });
worker.on('message', (result) => console.log(`Результат: ${result}`));
🔥 — если было полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Используйте расширение Git Graph для VS Code. Для тех разрабов, кто часто принимает PR и делает ревью кода, это расширение станет незаменимым.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Чтение файлов осуществляется с помощью встроенного модуля file system. Он предоставляет несколько методов для работы с файлами, и в этом гайде мы рассмотрим основные способы чтения данных.
Основные методы чтения файлов:
• fs.readFile() — асинхронный метод, не блокирующий выполнение программы.
• fs.readFileSync() — синхронный метод, который блокирует выполнение до завершения чтения.
• Потоки — эффективный способ работы с большими файлами, позволяющий читать их по частям.
Подробнее читайте в карточках
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤝4🔥3