Node.JS [ru] | Серверный JavaScript
11.5K subscribers
92 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
👩‍💻 Упрощённый 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
👍4
⚙️ Доступ к связанным с маршрутом моделям в запросах формы Laravel с #[RouteParameter]

В этой статье вы узнаете о PHP атрибуте #[RouteParameter], который используется в Laravel для доступа к моделям, связанным с маршрутом, в классах запросов форм. Мы подробно рассмотрим, как применять этот атрибут и какие проблемы он решает.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎5
➡️ Как внедрить наблюдаемость в микросервисное приложение с помощью OpenTelemetry, Jaeger и Prometheus

Статья рассказывает, как наблюдаемость помогает выявлять проблемы в микросервисных приложениях. Описаны метрики, логи, трассировки и инструменты для анализа производительности системы.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📝 Подборка вакансий для сеньоров

FullStack JavaScript Разработчик для финтех-проекта
Node.js, TypeScript, React, PostgreSQL, RabbitMQ, TypeORM, Docker, TailwindCSS, RESTful API
от 2 500 до 4 000 $ | от 3 лет

Senior Backend Developer
Node.js, TypeScript, NestJS, PostgreSQL, Apache Kafka, Terraform, Yandex Cloud, Kubernetes, Redis, ClickHouse
от 350 000 ₽ | от 5 лет

Senior Backend Developer
Node.js, TypeScript, C#, Golang, PostgreSQL, Docker, Git, MongoDB
Уровень дохода не указан | от 5 лет

Fullstack разработчик
JavaScript (ES6+), HTML5, CSS3, React, TypeScript, Redux Toolkit, Webpack, SCSS, Node.js, Express, Passport.js, Axios, Socket.io, Telegraf, Redis, Sequelize, TypeORM, Postgres, MongoDB, MariaDB, GitLab CI, Jenkins, Nginx, Docker, Figma
от 1 500 $ | от 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое path.resolve() в Node.js и зачем оно используется?

path.resolve() — это метод модуля path в Node.js, который возвращает абсолютный путь, объединяя переданные сегменты пути. Он полезен для построения пути к файлам и директориям независимо от текущей рабочей директории.

➡️ Пример:

const path = require('path');

// Построение абсолютного пути
const fullPath = path.resolve('folder', 'subfolder', 'file.txt');
console.log(fullPath); // Например: /Users/username/project/folder/subfolder/file.txt


🗣️ В этом примере path.resolve() объединяет сегменты пути и возвращает абсолютный путь к файлу. Это помогает избежать проблем с относительными путями и улучшает кросс-платформенность приложений.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥰21
🔎 Подборка вакансий для лидов

Lead Backend Developer (Node.js) at US-based company
🟢JavaScript, TypeScript, RDBMS, Apache Kafka, CI/CD (GitLab), Kubernetes, AWS, Python (желательно), NestJS, GraphQL
🟢от 6 000 до 7 500 $ до вычета налогов | более 6 лет

Team Lead (Node.js)
🟢Node.js, TypeScript, NestJS, PostgreSQL, RabbitMQ, Redis
🟢Уровень дохода не указан | 1–3 года

Backend Разработчик
🟢JavaScript, Node.js, TypeScript, PostgreSQL
🟢от 4 000 $ до вычета налогов | более 6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Пишем Realtime для Multiple-page application в микросервисной архитектуре

Статья рассказывает, как в MPA на микросервисной архитектуре избежать потерь сообщений при перезагрузке страницы. Рассматривается метод повторной отправки пропущенных WebSocket-сообщений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🐳1
🦉 Используй «правило совы» для сложных задач

Есть задача, которая кажется неподъёмной? Начать сложно, а прокрастинация растёт с каждой минутой.

👉 Совет: начни с самого простого шага. Например, открой проект, создай файл или напиши комментарий с описанием, что нужно сделать. Это как маленький толчок — когда начнёшь, продолжить будет гораздо проще. Одна мелкая победа запускает процесс.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍7💯5
🔎 Подборка зарубежных вакансий

Senior Node.js Developer
🟢Node.js, React, Azure, Docker, Kubernetes, Kafka, RabbitMQ
🟢Уровень дохода не указан | Более 6 лет

Node.js Backend Developer (Senior Level)
🟢Node.js, JavaScript, MongoDB, Web3, Git, Docker, AWS
🟢Уровень дохода не указан | Более 6 лет

Senior Next.js Developer
🟢Next.js, React.js, TypeScript, Elasticsearch, Azure, Kubernetes, Terraform
🟢от 2 500 до 5 000 $ до вычета налогов | Более 6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как узнать у клиента мнение о товарах и доставке при помощи SMS и Node JS

Как автоматизировать SMS-опросы для обратной связи? Статья показывает, как отправлять SMS с помощью Node.js и Exolve SMS API, чтобы оперативно собирать мнения клиентов о товарах и услугах.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Чтение ввода и преобразование в верхний регистр

Напишите скрипт на Node.js, который читает строки из стандартного ввода и выводит их в верхнем регистре. Если пользователь вводит "exit", программа завершается.

Пример:

hello
HELLO
world
WORLD
exit


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

process.stdin.setEncoding('utf8');

process.stdin.on('data', (data) => {
const lines = data.trim().split('\n');
for (const line of lines) {
if (line.toLowerCase() === 'exit') {
process.exit(0);
} else {
console.log(line.toUpperCase());
}
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
👩‍💻 ES2025: Атрибуты импорта JavaScript

Понимание нового синтаксиса атрибутов импорта и причин, по которым нельзя полагаться только на расширения файлов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Создание простого сервера для сокращения URL

Создайте простой сервер на Node.js с использованием Express, который принимает длинный URL и возвращает сокращённую версию. При переходе по сокращённому URL сервер должен перенаправлять на исходный URL.

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

npm init -y
npm install express nanoid

const express = require('express');
const { nanoid } = require('nanoid');

const app = express();
const port = 3000;

app.use(express.json());

const urlDatabase = {};

// Создание сокращенного URL
app.post('/shorten', (req, res) => {
const { url } = req.body;
if (!url) {
return res.status(400).json({ error: 'URL is required' });
}

const id = nanoid(6);
urlDatabase[id] = url;
res.json({ shortUrl: `http://localhost:${port}/r/${id}` });
});

// Перенаправление по сокращенному URL
app.get('/r/:id', (req, res) => {
const originalUrl = urlDatabase[
req.params.id];
if (originalUrl) {
res.redirect(originalUrl);
} else {
res.status(404).send('URL not found');
}
});

// Запуск сервера
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤨1
🔎 Подборка вакансий для джунов

Junior Backend разработчик (Node.JS)
🟢Node.js, TypeScript, PostgreSQL, Redis, RabbitMQ, Docker
🟢Уровень дохода не указан | 1–3 года

Junior разработчик/стажер Node.js, React, Fullstack
🟢Node.js, React.js, PostgreSQL, JavaScript, Git
🟢от 40 000 до 70 000 ₽ на руки | 1–3 года

Junior Backend-программист NodeJS
🟢Node.js, JavaScript, REST API, MySQL, Redis, RabbitMQ, GitHub
🟢от 70 000 ₽ до вычета налогов | 1–3 года

Junior+ Node.js разработчик
🟢Node.js, TypeScript, JavaScript, PostgreSQL, Redis, Docker, GitLab CI/CD
🟢до 120 000 ₽ до вычета налогов | Без опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Интеграция и сохранение выбранного языка пользователя в базу данных в фулстек-приложении на «Angular» и «NestJS»

Пример миграции базы данных для нового поля и добавления функционала на бэкенде и фронтенде. Пошаговый разбор: обновление схемы, логика на сервере и интерфейс для изменения данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое Intersection Observer в JavaScript и зачем он используется?

Intersection Observer — это API, которое позволяет отслеживать, когда элемент входит или выходит из области видимости (viewport). Оно полезно для оптимизации ленивой загрузки изображений, бесконечной прокрутки или анимаций при прокрутке.

➡️ Пример:

// Целевой элемент для наблюдения
const target = document.querySelector('.observe-me');

// Callback-функция для обработки пересечений
const observerCallback = (entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
console.log('Элемент видим:', entry.target);
observer.unobserve(entry.target); // Останавливаем наблюдение
}
});
};

// Настройки наблюдателя
const observerOptions = {
root: null, // Вся область видимости
threshold: 0.5 // 50% видимости элемента
};

// Создаем наблюдатель
const observer = new IntersectionObserver(observerCallback, observerOptions);

// Начинаем наблюдение за элементом
observer.observe(target);


🗣️ В этом примере API отслеживает, когда .observe-me становится видимым на 50%. Intersection Observer делает прокрутку более производительной, так как избавляет от необходимости использовать события scroll.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3
📝 Подборка вакансий для мидлов

Fullstack разработчик (Node.js + Vue.js)
Node.js, Vue.js, NestJS, Next.js, PostgreSQL, RabbitMQ, Redis, Kubernetes
от 240 000 ₽ на руки | 1–3 года

Node.js разработчик
Node.js, TypeScript, NestJS, PostgreSQL, MongoDB, RabbitMQ, Docker, Redis, GraphQL, GitLab, Ansible
Уровень дохода не указан | 3–6 лет

Backend Developer (Node.js)
Node.js, TypeScript, NestJS, PostgreSQL, Redis, Docker, Linux, Git
от 270 000 до 290 000 ₽ на руки | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что читали на Хабре в 2024 году: анализ статей с Node.js, Google Sheets и каплей ChatGPT

Рассматриваем анализ данных Хабра за 2024 год: популярные статьи, скрытые тренды и интересные находки. Node.js, нейросети и Google Таблицы в деле!

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