Node.JS [ru] | Серверный JavaScript
11.5K subscribers
88 photos
5 videos
25 files
3.12K 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
👩‍💻 Паттерны для эффективного манипулирования DOM с ванильным JavaScript

В руководстве рассматриваются такие шаблоны работы с DOM на JavaScript, как выбор правильного querySelector, кэширование элементов и улучшение обработки событий.

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

Создайте HTTP-сервер на Node.js, который раздаёт статические файлы из указанной папки. По умолчанию сервер должен обслуживать файлы из папки public и работать на порту 3000.

Создайте структуру папок:

project/
├── server.js
└── public/
└── index.html


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

Файл server.js:

const http = require('http');
const fs = require('fs');
const path = require('path');

const PORT = 3000;
const PUBLIC_DIR = path.join(__dirname, 'public');

const server = http.createServer((req, res) => {
let filePath = path.join(PUBLIC_DIR, req.url === '/' ? 'index.html' : req.url);

fs.readFile(filePath, (err, data) => {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('404 Not Found');
} else {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(data);
}
});
});

server.listen(PORT, () => {
console.log(`Сервер запущен на http://localhost:${PORT}`);
});

Файл public/index.html (пример содержимого):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Static Server</title>
</head>
<body>
<h1>Добро пожаловать на мой сервер!</h1>
</body>
</html>

node server.js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
⚙️ Базовое программирование, или Почему джуны не могут пройти к нам собеседование

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2👎1
👩‍💻 Создание простого REST API для управления задачами

Создайте HTTP-сервер на Node.js с REST API для управления списком задач. Реализуйте следующие функции:

Получение всех задач (GET /tasks).
Добавление новой задачи (POST /tasks).
Удаление задачи по индексу (DELETE /tasks/:index).

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

npm init -y
npm install express

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

app.use(express.json());

let tasks = [];

// Получение всех задач
app.get('/tasks', (req, res) => {
res.json(tasks);
});

// Добавление новой задачи
app.post('/tasks', (req, res) => {
const { task } = req.body;
if (task) {
tasks.push(task);
res.status(201).json({ message: 'Задача добавлена', tasks });
} else {
res.status(400).json({ error: 'Задача не должна быть пустой' });
}
});

// Удаление задачи по индексу
app.delete('/tasks/:index', (req, res) => {
const index = parseInt(req.params.index, 10);
if (index >= 0 && index < tasks.length) {
tasks.splice(index, 1);
res.json({ message: 'Задача удалена', tasks });
} else {
res.status(404).json({ error: 'Задача не найдена' });
}
});

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

Fullstack программист-разработчик WEB-приложений (NodeJS, React, PostgreSQL)
🟢JavaScript, SQL, PostgreSQL, Node.js, React, HTML, Express.js, Backend, Frontend, базы данных, системы управления базами данных, разработка ПО, веб-программирование
🟢от 70 000 до 120 000 ₽ | 1–3 года

Node.js backend developer
🟢Node.js, TypeScript, REST API, Express.js, NestJS, PostgreSQL, английский язык
🟢Уровень дохода не указан | 1–3 года

Разработчик Node.js
🟢TypeScript, Node.js, WebRTC, Mediasoup, Electron, React, MobX, WebSocket, Docker, Kubernetes
🟢Уровень дохода не указан | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
➡️ HTTP-запросы: структура, методы, строка статуса и коды состояния

Статья объясняет базовые элементы HTTP: структуру запросов, методы для выполнения операций, строку статуса и коды состояния, помогающие понять результат взаимодействия с сервером.

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

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

➡️ Пример:

const path = require('path');

const filePath = path.join(__dirname, 'folder', 'file.txt');
console.log(filePath); // Полный путь к файлу

console.log(path.basename(filePath)); // file.txt (имя файла)
console.log(path.extname(filePath)); // .txt (расширение файла)


🗣️ В этом примере модуль path собирает путь к файлу, получая его базовое имя и расширение. Это удобно для работы с файловой системой, независимо от операционной системы.


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

Full-Stack разработчик (Node.js - React.js) (middle+)
🟢TypeScript, React, Effector, Vite, NestJS, PostgreSQL, TypeORM, Docker, SOAP
🟢от 1 000 000 ₸ | от 3 лет

Node.js Backend developer
🟢Node.js, TypeScript, PostgreSQL, Koa, Liquibase, Sequelize
🟢Уровень дохода не указан | от 3 лет

NodeJS разработчик
🟢Node.js, TypeScript, PostgreSQL, KeyDB, Apache Kafka, NestJS, Unix
🟢Уровень дохода не указан | от 3 лет

Fullstack разработчик (JavaScript, Node.js)
🟢Node.js, JavaScript, React, Redux, Express, TypeScript, Grafana, Kibana, Prometheus, Sentry, Jest, React Testing Library, Supertest, GitLab, Jira, Docker, Jenkins, Kubernetes, PHP
🟢Уровень дохода не указан | от 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
31🤡1
👩‍💻 React Server Components и Next.js 13: новый шаг к оптимальному рендерингу

React Server Components (RSC) и Next.js 13 представляют новый виток в разработке React-приложений, предоставляя мощные инструменты для оптимизации и упрощения архитектуры.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👎3🤔1
👩‍💻 Упрощённый 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