Node.JS [ru] | Серверный JavaScript
11.5K subscribers
89 photos
6 videos
25 files
3.13K 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
➡️ Порты в веб-разработке: от локальной разработки до продакшена

Что означают номера портов для веб-разработчиков? Статья исследует практическое применение портов, объясняет их выбор в популярных инструментах и рассказывает, как порты влияют на настройку локальных серверов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Запись лога HTTP-запросов в файл

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

Пример:

node server.js

curl http://localhost:3000/test
curl -X POST http://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('Сервер запущен на http://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
⚙️ Как настроить свой первый сервер: инструкция от фронтендера

В этой статье — простая и проверенная инструкция по настройке безопасного сервера для вашего первого fullstack-приложения. От SSH до SSL и двухфакторной аутентификации — рассказываю, как я защитил свой SaaS-проект Transcribator.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👩‍💻 Поиск самого длинного слова в строке

Напишите функцию, которая принимает строку и возвращает самое длинное слово. Если несколько слов имеют одинаковую длину, вернуть первое из них.

Пример:

const sentence = "JavaScript is an amazing programming language";
const result = findLongestWord(sentence);
console.log(result);
// Ожидаемый результат: "programming"


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

function findLongestWord(sentence) {
return sentence
.split(' ')
.reduce((longest, word) => (word.length > longest.length ? word : longest), '');
}

// Пример использования:
const sentence = "JavaScript is an amazing programming language";
const result = findLongestWord(sentence);
console.log(result);
// Ожидаемый результат: "programming"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61👎1🥱1
🔎 Подборка вакансий для джунов

Junior Full-Stack Node.js developer
🟢HTML, CSS, JavaScript, TypeScript, Vue.js, Node.js, Nest.js, Puppeteer, Linux, HTTP(S), API
🟢от 80 000 ₽ на руки | 1–3 года опыта

Fullstack Инженер Node.js
🟢Vue.js, Node.js, JavaScript, HTML, CSS, HTTP/HTTPS, API, Git, базы данных
🟢до 70 000 ₽ на руки | 1–3 года опыта

Backend разработчик NODE.JS
🟢JavaScript, Node.js, React, Vue.js, jQuery, Express.js, MongoDB, MySQL, Redis, PostgreSQL, Docker, REST API
🟢от 600 до 1 700 $ на руки | 1–3 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡5
🤔 Как я научился оценивать популярность статей через парсинг показателей сайтов

В статье описывается, как автор анализирует популярность своих 250 статей через автоматизацию. Созданный Open Source скрипт собирает статистику просмотров, комментариев и рейтинга, помогая понять, что интересно читателям.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое process.env в Node.js и как использовать переменные окружения?

process.env — это объект в Node.js, который содержит переменные окружения. Они используются для хранения конфиденциальной информации (например, ключей API, паролей) и настройки приложений в разных средах (разработка, тестирование, продакшен).

➡️ Пример:

// Установите переменные окружения (например, в .env файле или через терминал)
// В Linux/Mac: export API_KEY=12345
// В Windows (cmd): set API_KEY=12345

// Доступ к переменным окружения
console.log(`Ваш API ключ: ${process.env.API_KEY}`);

// Используем переменные окружения для конфигурации
if (process.env.NODE_ENV === 'production') {
console.log('Запущено в режиме продакшена');
} else {
console.log('Запущено в режиме разработки');
}


🗣️ Переменные окружения через process.env позволяют настраивать поведение приложения без изменения кода. Это важно для обеспечения безопасности и управления настройками.


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

Fullstack-разработчик React.js/JavaScript/Node.js/PHP Laravel
MySQL, React, MobX, Laravel, PHP, Docker, Nginx, Redis
от 110 000 до 150 000 ₽ | 1 год опыта

Разработчик Node.js (BackEnd) Middle +
Node.js, NestJS, TypeORM, PostgreSQL
от 250 000 до 330 000 ₽ | 1–3 года опыта

Backend developer (nodejs)
TypeScript, Node.js, PostgreSQL, NestJS, Linux, высоконагруженные системы, Git, Docker
от 270 000 до 290 000 ₽ | 3 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Когда не стоит использовать метод find() в JavaScript

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

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

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

Пример:

node fileExtensions.js ./example-folder
txt: 3
js: 5
json: 2


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

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

const folderPath = process.argv[2];

if (!folderPath) {
console.error('Укажите путь к папке.');
process.exit(1);
}

fs.readdir(folderPath, (err, files) => {
if (err) {
console.error('Ошибка чтения папки:', err.message);
return;
}

const extensionCount = files.reduce((acc, file) => {
const ext = path.extname(file).slice(1); // Получаем расширение без точки
if (ext) {
acc[ext] = (acc[ext] || 0) + 1;
}
return acc;
}, {});

console.log('Расширения файлов:');
for (const [ext, count] of Object.entries(extensionCount)) {
console.log(`${ext}: ${count}`);
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💬 Как пересылать сообщения из Telegram в SMS с помощью бота

В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚙️ Что такое реактивное программирование? Руководство для начинающих по написанию реактивного кода

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

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

Fullstack TypeScript разработчик [Senior]
TypeScript, Node.js, React, PostgreSQL, Docker, Kubernetes, Git, Linux
Уровень дохода не указан | Senior уровень

Backend Developer (Node.js)
Node.js, TypeScript, MongoDB, NestJS, Kafka, Redis, Docker
от 3 800 до 5 500 $ | 5 лет опыта

Senior Fullstack/Backend Developer (Node.js, TypeScript, Postgres, Web3)
Node.js, TypeScript, PostgreSQL, Svelte.js, AWS, Linux, Git, функциональное программирование, Web3
от 4 000 до 6 000 $ | 6 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Создание ванильного JavaScript signal() с Proxy

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

Читать...
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
👍7🤝2
🔎 Подборка вакансий для лидов

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

Senior Fullstack Developer
🟢Node.js, React, JavaScript, TypeScript, MongoDB, Clickhouse, Elasticsearch
🟢от 4 500 до 6 500 $ до вычета налогов | более 6 лет опыта

Lead JavaScript - Developer
🟢JavaScript, Node.js, React, Vue.js, MVC, ООП, HTML, C++, Java
🟢от 350 000 ₽ | более 6 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Новые альтернативы innerHTML

Статья объясняет появление метода setHTMLUnsafe для работы с HTML в браузерах. Разбираются особенности безопасности, отличия от setHTML и innerHTML, а также поддержка в разных браузерах и значение нового подхода к именованию методов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🌟 Найди свою зону «быстрого роста»

Каждый день осваивать что-то новое — звучит круто, но мозг так не работает. Выбирая направление для развития, многие пытаются изучить всё подряд, но это неэффективно.

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

Senior Node.js developer
🟢Node.js, SQL, Git, ООП, MongoDB, Angular
🟢до 4 000 $ до вычета налогов | более 6 лет опыта

Backend Engineer (Node.js)
🟢Node.js, GraphQL, RedwoodJS, Prisma ORM, Firebase, Git
🟢Уровень дохода не указан | 3–6 лет опыта

Middle+ NodeJS backend developer
🟢Node.js, TypeScript, GraphQL, PostgreSQL, Websockets, Redis
🟢от 2 000 до 4 500 $ на руки | более 6 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
💩7🤮3👍1🖕1