Node.JS [ru] | Серверный JavaScript
11.4K subscribers
88 photos
5 videos
25 files
3.19K 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
👩‍💻 Запись лога HTTP-запросов в файл

Напишите HTTP-сервер на Node.js, который записывает информацию о каждом входящем запросе (метод, URL, время) в текстовый файл requests.log. Сервер должен возвращать "Запрос обработан" на любой запрос.

Пример:

node server.js

curl https://localhost:3000/test
curl -X POST https://localhost:3000/api

[2024-11-11T12:00:00Z] GET /test
[2024-11-11T12:00:05Z] POST /api


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

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

const logFile = 'requests.log';

// Создание HTTP-сервера
const server = http.createServer((req, res) => {
const logEntry = `[${new Date().toISOString()}] ${req.method} ${req.url}\n`;

// Записываем лог в файл
fs.appendFile(logFile, logEntry, (err) => {
if (err) {
console.error('Ошибка записи лога:', err.message);
}
});

// Отправляем ответ
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Запрос обработан');
});

// Запуск сервера на порту 3000
server.listen(3000, () => {
console.log('Сервер запущен на https://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
👩‍💻 Обзор наследования в JavaScript

Статья изучает шаблоны наследования в JavaScript, основанные на прототипах. Рассматриваются их уникальные особенности и применение, чтобы выбрать наиболее подходящий подход для задач.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41👎1
👩‍💻 Как спрятать любые данные в PNG

Статья объясняет, как спрятать данные в PNG-изображении, используя младшие биты (LSB) пикселей. Рассматривается структура PNG, каналы R, G, B и альфа, а также методы внедрения данных без заметного изменения картинки.

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

Node.js Backend разработчик (удаленно)
Node.js, TypeScript, JavaScript, TCP/IP, PostgreSQL, ClickHouse, Google Pub/Sub, Kafka, RabbitMQ
от 180 000 до 660 000 ₽ | от 2 лет

Системный аналитик
BPMN, UML, SQL, OpenProject, Postman
от 200 000 до 300 000 ₽ | от 3 лет

Middle/Senior Node.js developer
Node.js, PostgreSQL, MongoDB, Redis, TypeScript, Docker, Kubernetes, RESTful API
Уровень дохода не указан | от 3 лет

Backend Developer (Node.js)
Node.js, Oracle DB, PostgreSQL, SQL, RabbitMQ, Kafka
Уровень дохода не указан | от 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔1
📆 Как я создал Vanilla Calendar Pro — легкий и гибкий календарь на JavaScript с использованием TypeScript

Статья рассказывает о создании Vanilla Calendar Pro — датапикера, собравшего 480+ звезд на GitHub. Описывается путь от первого опыта в open source до популярного инструмента, востребованного разработчиками.

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

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

➡️ Пример:

const os = require('os');

console.log('Платформа:', os.platform()); // Выводит платформу, например 'linux'
console.log('Архитектура:', os.arch()); // Выводит архитектуру, например 'x64'
console.log('Свободная память:', os.freemem()); // Количество свободной памяти


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


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

Senior Node.js Developer в стартап (Nest.js)
🟢TypeScript, NestJS, Node.js, PostgreSQL, RabbitMQ, Docker
🟢до 300 000 ₽ | более 6 лет

Senior Node.js Backend Developer в Стартап (Nest.js)
🟢NestJS, TypeScript, PostgreSQL, Redis, Docker, Git
🟢до 330 000 ₽ | более 6 лет

Senior Full Stack Developer (продукт, IT)
🟢TypeScript, React, React-hooks, Node.js, Express
🟢от 350 000 ₽ | более 6 лет

Senior Full Stack Developer
🟢JavaScript, React, Node.js, Express, MongoDB
🟢Уровень дохода не указан | более 5 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
🤔 Использовать двойные кавычки или нет

Совсем недавно я снова услышал, что в PHP до сих пор обсуждают одинарные и двойные кавычки, и что использование одинарных кавычек — это просто микрооптимизация, но если вы привыкнете постоянно использовать одинарные кавычки, то сэкономите кучу процессорных циклов!

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱8👍2👎2
🎯 Погружайся в «смежные зоны»

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

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

Middle Fullstack Developer (React.js + Node.js)
🟢TypeScript, JavaScript, React.js, Node.js, PostgreSQL, AWS, Electron
🟢от 2 000 до 3 500 $ | от 1 до 3 лет

Middle Backend Developer (Node.js), Billing Team
🟢Node.js, TypeScript, Koa, NestJS, MongoDB, Kafka, Bull, Redis, ClickHouse, Elasticsearch
🟢от 3 800 до 6 300 $ до вычета налогов | от 3 до 6 лет

Backend Developer (Node.js)
🟢Node.js, NestJS, PostgreSQL, ClickHouse, Redis, Docker, Kubernetes, Kafka, Prometheus, Grafana, ELK
🟢от 3 000 $ | от 3 до 6 лет

Senior Frontend Developer (Vue / Node.js)
🟢JavaScript, TypeScript, Vue.js, Node.js, Express.js, HTML, CSS, Docker, Jenkins, GitLab
🟢от 4 000 до 5 500 € | от 3 до 6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как сделать невероятно быстрый многопоточный Data Grid на 1 000 000 строк. Часть 1/2: нюансы работы с DOM

Статья объясняет, как создать невероятно быстрый многопоточный Data Grid на 1 000 000 строк с использованием Vanilla JavaScript. Рассматриваются нюансы работы с DOM для повышения производительности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Чтение и подсчёт строк в текстовом файле

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

Ожидаемое поведение:

При указании пути к существующему файлу скрипт выводит количество строк в нём.
Если файл не найден, выводится сообщение об ошибке.
Скрипт обрабатывает ошибки корректно.

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

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

if (!path) {
console.error('Ошибка: Укажите путь к файлу.');
process.exit(1);
}

fs.readFile(path, 'utf8', (err, data) => {
if (err) {
if (err.code === 'ENOENT') {
console.error('Ошибка: Файл не найден.');
} else {
console.error('Ошибка при чтении файла:', err.message);
}
return;
}

const lines = data.split('\n').length;
console.log(`Количество строк: ${lines}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Когда не стоит использовать метод find() в JavaScript

Немногие знают истинную ценность Map. Между тем, применение этой структуры данных позволяет повысить производительность и улучшить пользовательский опыт. Особенно она полезна при работе со сложными структурами данных или при необходимости получить быстрый доступ к данным.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4💯1
👩‍💻 Удаление объектов с дубликатами по ключу

Напишите функцию, которая принимает массив объектов и ключ. Функция должна возвращать новый массив, удаляя объекты с повторяющимися значениями указанного ключа. Сохраняйте порядок элементов.

Пример:

const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];

const result = removeDuplicatesByKey(data, 'name');
console.log(result);
// Ожидаемый результат:
// [
// { id: 1, name: 'Alice' },
// { id: 2, name: 'Bob' },
// { id: 4, name: 'Charlie' }
// ]


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

function removeDuplicatesByKey(array, key) {
const seen = new Set();
return array.filter(item => {
const value = item[key];
if (seen.has(value)) {
return false;
}
seen.add(value);
return true;
});
}

// Пример использования:
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];

const result = removeDuplicatesByKey(data, 'name');
console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
🔎 Подборка вакансий для джунов

Junior+ разработчик back-end Node.js (JavaScript, TypeScript)
🟢Node.js, Express.js, TypeScript, PostgreSQL, PrismaORM, Redis, Docker, Gitlab CI/CD
🟢до 120 000 ₽ на руки | Без опыта

Junior Backend Developer
🟢Golang, Ruby on Rails, Node.js (Koa 2), PostgreSQL, MongoDB, Redis, Apache Kafka, WebSockets, JWT, Docker, Kubernetes
🟢от 60 000 ₽ на руки | Без опыта

Full-stack Web Developer
🟢JavaScript, TypeScript, React.js, Node.js, NestJS, PostgreSQL
🟢Уровень дохода не указан | Без опыта

NodeJS-разработчик в интегратор amoCRM
🟢Node.js, TypeScript, JavaScript, Go, MongoDB, REST API
🟢Уровень дохода не указан | от 1 до 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡3🗿2
👩‍💻 Тестирование Node.js с использованием Mocha, Chai и Sinon

JavaScript и Node.js имеют множество библиотек тестирования и утверждений, таких как Jest, Jasmine, Qunit и Mocha. В этой статье мы рассмотрим, как использовать Mocha для тестирования, Chai для утверждений и Sinon для моков, шпионов и стабов.

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

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

➡️ Пример:

const path = require('path');

const fullPath = path.join(__dirname, 'files', 'example.txt'); // Объединение путей
console.log(fullPath); // Полный путь к файлу

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


🗣️ В этом примере модуль path используется для создания и анализа путей к файлам, что упрощает работу с файловой системой в Node.js.


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

Бэкенд разработчик
JavaScript, TypeScript
Уровень дохода не указан | от 2 лет

Системный аналитик
React, Node.js, MongoDB, PostgreSQL
до 200 000 ₽ | Требуемый опыт не указан

Middle Typescript разработчик (Telegram боты)
JavaScript, Node.js, TypeScript, создание Telegram-ботов, Redis, MongoDB, REST
Уровень дохода не указан | от 2 лет

Разработчик Node.js («Сборка заказов»)
Node.js, TypeScript, JavaScript, MongoDB, Apache Kafka, ClickHouse, Elasticsearch
Уровень дохода не указан | от 2 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🥰1