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
👩‍💻 Как спрятать любые данные в 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
💬 Добавление поддержки нескольких языков в NestJS и Angular приложениях

В этой статье я добавлю поддержку нескольких языков в NestJS и Angular приложениях, для сообщений в ошибках, уведомлениях и данных полученных из базы данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Сервер, возвращающий случайную цитату

Создайте HTTP-сервер на Node.js, который по запросу возвращает случайную цитату из заранее заданного списка.

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

Сервер запускается на порту 3000.
При GET-запросе на /quote сервер возвращает JSON с случайной цитатой.
При запросе на другой путь возвращается сообщение об ошибке.

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

const http = require('http');

const quotes = [
"The only limit to our realization of tomorrow is our doubts of today.",
"Do not watch the clock. Do what it does. Keep going.",
"The future depends on what you do today.",
"Success is not the key to happiness. Happiness is the key to success.",
"Hardships often prepare ordinary people for an extraordinary destiny."
];

const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'application/json');

if (req.url === '/quote' && req.method === 'GET') {
const randomQuote = quotes[Math.floor(Math.random() * quotes.length)];
res.writeHead(200);
res.end(JSON.stringify({ quote: randomQuote }));
} else {
res.writeHead(404);
res.end(JSON.stringify({ error: 'Invalid endpoint' }));
}
});

server.listen(3000, () => {
console.log('Сервер запущен на http://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👎3