Node.JS [ru] | Серверный JavaScript
11.5K subscribers
91 photos
6 videos
25 files
3.16K links
Все о разработке backend части на JavaScript (Node JS).
А так же: Express JS, Next JS, Nest, Socket.IO

Канал на бирже - https://telega.in/c/we_use_js

По вопросам рекламы или разработки: @g_abashkin

РКН: https://vk.cc/cJPGOP
Download Telegram
⚙️ Что такое реактивное программирование? Руководство для начинающих по написанию реактивного кода

Реактивное программирование — это ключ к созданию приложений, мгновенно реагирующих на события. В статье разбираются основы этой парадигмы, реализация на JavaScript/TypeScript в Node.js и её универсальное применение.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚙️ Что такое Cluster в Node.js?

Cluster — это модуль Node.js, позволяющий создавать несколько процессов (воркеров) для выполнения кода параллельно. Это полезно для улучшения производительности на многопроцессорных системах, так как Node.js работает в однопоточном режиме.

const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
// Создание воркеров на основе числа ядер процессора
console.log(`Master ${process.pid} is running`);

for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}

cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
});
} else {
// Каждый воркер будет запускать сервер
http.createServer((req, res) => {
res.writeHead(200);
res.end(`Hello from worker ${process.pid}\n`);
}).listen(8000);

console.log(`Worker ${process.pid} started`);
}


➡️ Cluster позволяет создавать несколько экземпляров сервера на каждом ядре процессора, увеличивая масштабируемость и производительность приложений на Node.js.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤯3👎1🔥1
👩‍💻 Создание ванильного JavaScript signal() с Proxy

Статья объясняет, как с помощью Proxy в ванильном JavaScript реализовать реактивные сигналы, упрощая управление состоянием. Рассматриваются основные принципы и примеры применения.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Почему мы выбрали gRPC вместо tRPC?

Статья объясняет, как gRPC упрощает переход от монолита к микросервисам в приложениях на основе Domain Driven Design. Рассматриваются преимущества: прямые вызовы, типизация, децентрализация и автоматизация методов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🛑 Перестань зависеть от IDE

Ты настолько привык к подсказкам и автоисправлениям в IDE, что без неё чувствуешь себя беспомощным?

👉 Совет: иногда пиши код в обычном текстовом редакторе или терминале. Это развивает навык писать без костылей, лучше понимать язык и замечать ошибки раньше. Профессионал не зависит от инструментов — он просто использует их для удобства.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎27👍9🤡8👏1
🚀 Разработка Telegram Mini App с помощью React

Статья объясняет, как создать Telegram Mini App с использованием React. Рассматриваются шаги разработки, от настройки проекта до интеграции с мессенджером, для создания веб-приложений внутри Telegram.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Недостатки JavaScript

JavaScript, незаменимый компонент современной веб-разработки, отличается универсальностью и мощью. Однако даже у такого популярного инструмента есть свои сложности. Давайте разберёмся в дополнительных, часто упускаемых из виду аспектах, делающих JavaScript менее идеальным в определённых ситуациях.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Задачка по NodeJS

Напишите скрипт, который создаёт HTTP-сервер. При запросе на сервер он должен возвращать текст "Hello, World!".

Сервер запускается на порту 3000.
При обращении к http://localhost:3000 в браузере или через curl возвращается строка "Hello, World!".

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

const http = require('http');

const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
});

server.listen(3000, () => {
console.log('Сервер запущен на http://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
😐7👎3👍2
👩‍💻 Как работает маршрутизация Express

Как в приложении Node.js происходит обработка клиентских запросов? Какая функция помогает обрабатывать тот или иной запрос? Чтобы ответить на эти вопросы, заглянем в "закулисье" маршрутизации фреймворка Express.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😐2🤯1
👩‍💻 Задачка по NodeJS

Напишите скрипт, который принимает название города и выводит текущую температуру в этом городе, используя бесплатный API OpenWeatherMap.

Пример использования:

node weather.js London
Текущая температура в London: 15°C


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

const https = require('https');

const city = process.argv[2];
const apiKey = 'your_openweathermap_api_key'; // Замените на свой API-ключ

if (!city) {
console.error('Пожалуйста, укажите город.');
process.exit(1);
}

const url = `
https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiKey}`;

https.get(url, (res) => {
let data = '';

res.on('data', (chunk) => {
data += chunk;
});

res.on('end', () => {
const weather = JSON.parse(data);
if (weather.main) {
console.log(`Текущая температура в ${city}: ${weather.main.temp}°C`);
} else {
console.error(`Не удалось получить данные о погоде для города: ${city}`);
}
});
}).on('error', (err) => {
console.error('Ошибка:', err.message);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁2
🔎 Подборка вакансий для джунов

Backend-разработчик
🟢Node.js, Nest.js, TypeScript, PostgreSQL, Redis, Docker, BigQuery
🟢от 1 200 до 1 500 $ | 1–3 года

Backend Developer (Node.js)
🟢Node.js, ES6, Git, RabbitMQ, Redis, PostgreSQL, MySQL
🟢Уровень дохода не указан | 1–3 года

Node.js разработчик Junior+ (удаленно)
🟢Node.js, TypeScript, JavaScript, Express, PostgreSQL, Redis, Prisma, Docker, GitLab CI/CD
🟢от 100 000 ₽ | Без опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Используем ShakaPlayer в LightningJS

Хотите интегрировать ShakaPlayer в приложение Lightning для управления воспроизведением? Изучите краткое руководство по расширению стандартного медиаплеера в Lightning и использованию его с ShakaPlayer.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Модульные CSS-архитектуры в Next.js: BEM, SMACSS, OOCSS и их применение

Статья объясняет использование модульных CSS-архитектур, таких как BEM, SMACSS и OOCSS, в проектах на Next.js. Рассматриваются подходы к созданию масштабируемой и организованной структуры стилей.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2👎1
⚙️ Заметки по grammY

Бэкенд-инженер на Scala решил превратить экспериментальный пет-проект в реальный сервис. В статье он делится опытом разработки Telegram-бота для общения за плату и анализирует рынок подобных решений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
👩‍💻 Упрощённый API для управления заметками

Создайте минимальный API на Node.js с использованием Express, который позволяет:

Получить список всех заметок.
Добавить новую заметку.

Требования:

1. Маршруты API:
• GET /notes: Возвращает массив всех заметок.
• POST /notes: Добавляет новую заметку (передаётся в теле запроса).
2. Хранилище данных:
Используйте массив в памяти. Каждая заметка должна содержать поля:
{
"id": "уникальный идентификатор",
"content": "текст заметки"
}

3. Требования к корректности:
Заголовок заметки (content) должен быть строкой и не быть пустым.

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

const express = require('express');
const { v4: uuidv4 } = require('uuid');

const app = express();
app.use(express.json());

let notes = [];

// Получить все заметки
app.get('/notes', (req, res) => {
res.json(notes);
});

// Добавить новую заметку
app.post('/notes', (req, res) => {
const { content } = req.body;
if (!content || typeof content !== 'string') {
return res.status(400).json({ error: 'Invalid content' });
}

const newNote = { id: uuidv4(), content };
notes.push(newNote);
res.status(201).json(newNote);
});

// Запуск сервера
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
👩‍💻 Как ускорить создание компонентов с помощью Plop-генератора или автоматизация рутинных задач в React

В статье рассказывается о крупной фронтенд-команде, которая работает с микросервисами и общей дизайн-системой. Несмотря на стандарты, возникали проблемы, и статья подробно раскрывает, как они были решены.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Media is too big
VIEW IN TELEGRAM
💻 Ты разработчик, который хочет зарабатывать больше?

В IT важно не просто кодить, а разбираться в архитектуре, понимать бизнес и грамотно выстраивать свою карьеру. Иначе через пару лет ты окажешься в толпе мидлов, которым ИИ уже подбирает замену.

📌 В своем канале Саня об IT я говорю не про «как войти в IT», а как не застрять в нём.
Какие технологии будут востребованы в 2025?
Реальные кейсы: разбор IT-трендов без маркетинговой шелухи.
Карьерный рост: как перейти из мидлов в сеньоры, а дальше – хоть в техлиды.

🚀 Подписывайся, если хочешь развиваться, а не топтаться на месте!
👉 https://t.me/+iANNIV0b65k3MWEy
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Введение в AI Selfie Background Remover с использованием TensorFlow.js для React-приложений

В статье рассматривается "React Selfie AI Background Remover" — компонент, использующий TensorFlow.js для удаления фона в браузере. Основные фишки: точная сегментация с MediaPipe, легкая интеграция в React и live demo.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21