• Интеграция внешнего файлового сервера https://min.io в фулстек приложение на NestJS и Angular
• Разработка Telegram Mini App с помощью React
• Почему мы выбрали gRPC вместо tRPC?
• Разворачиваем приложение Next.js с базой данных PostgreSQL и задачей Cron на облачном сервере Ubuntu Linux
• Создаём современные npm-пакеты и преодолеваем трудности совместимости ESM и CJS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Представь, что ты отправляешь сообщение в мессенджере, а оно доходит с задержкой в минуту. Бесит? А теперь представь, что у тебя сервис с миллионами пользователей, и каждое их действие должно мгновенно отражаться везде. Звучит как кошмар? Спокойно, есть четыре проверенных способа решить эту головоломку, и они реально работают.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Создайте сервер на Node.js, который логирует все входящие запросы с указанием времени и метода запроса (GET, POST и т. д.). Логи должны сохраняться в файл
requests.log
. Каждая запись должна добавляться в файл с новой строки, а файл логов должен автоматически очищаться каждый день в полночь.• При получении запроса сервер записывает его метод и время в файл
requests.log
. Каждый день в полночь файл логов очищается.Решение задачи
const http = require('http');
const fs = require('fs');
const path = require('path');
// Путь к файлу логов
const logFilePath = path.join(__dirname, 'requests.log');
// Функция для записи лога
function logRequest(method) {
const timestamp = new Date().toISOString();
const logEntry = `${timestamp} - ${method}\n`;
fs.appendFile(logFilePath, logEntry, (err) => {
if (err) console.error('Ошибка записи в лог:', err);
});
}
// Создание сервера
const server = http.createServer((req, res) => {
logRequest(req.method);
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Запрос логирован!\n');
});
// Очистка файла логов в полночь
function clearLogDaily() {
const now = new Date();
const timeToMidnight = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1) - now;
setTimeout(() => {
fs.writeFile(logFilePath, '', (err) => {
if (err) console.error('Ошибка очистки логов:', err);
console.log('Файл логов очищен.');
});
clearLogDaily();
}, timeToMidnight);
}
// Запуск очистки логов
clearLogDaily();
// Запуск сервера
server.listen(3000, () => {
console.log('Сервер запущен на порту 3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1🔥1
Node.js backend developer
Node.js Developer
Web-программист Node.js (Junior) удаленно
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🔥2
Статья объясняет, как gRPC упрощает переход от монолита к микросервисам в приложениях на основе Domain Driven Design. Рассматриваются преимущества: прямые вызовы, типизация, децентрализация и автоматизация методов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
worker_threads
— это модуль в Node.js, который позволяет создавать дополнительные потоки для выполнения задач параллельно с основным потоком. Он особенно полезен для вычислительно затратных операций, которые могут блокировать выполнение кода в основном потоке событий.const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
// Главный поток
console.log('Главный поток запущен');
const worker = new Worker(__filename); // Создаем воркер
worker.on('message', (msg) => {
console.log('Результат от воркера:', msg);
});
worker.postMessage('Начать расчет'); // Передаем сообщение воркеру
} else {
// Воркер
parentPort.on('message', (msg) => {
console.log('Сообщение от главного потока:', msg);
// Выполняем тяжелый расчет
const result = Array(1e6).fill(0).reduce((acc, _, i) => acc + i, 0);
parentPort.postMessage(result); // Отправляем результат обратно
});
}
🗣️ В этом примере главный поток создает воркер, который выполняет вычисление суммы чисел, не блокируя основной поток. Это позволяет использовать многопоточность в JavaScript для высоконагруженных операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Бэкэнд-разработчик JavaScript
•
JavaScript, Node.js, React, Angular, RESTful API, PostgreSQL, MongoDB, RabbitMQ, Git•
от 250 000 до 400 000 ₽ | от 3 лет опытаBackend (Node.js) разработчик
•
Node.js, TypeScript, JavaScript, MoleculerJS, PostgreSQL, Unit-тестирование, Git•
Уровень дохода не указан | от 4 лет опытаMiddle+ NodeJS backend developer (Удаленно)
•
Node.js, TypeScript, GraphQL, PostgreSQL, Websockets, Redis, GitLab•
от 2 000 до 4 500 $ | Требуемый опыт не указанPlease open Telegram to view this post
VIEW IN TELEGRAM
Статья исследует, как обеспечить стабильность и доступность сервиса по всему миру. Рассмотрены методы контроля скорости работы сайта и мониторинга проблем маршрутизации и цензуры, выходящие за рамки стандартных аналитических решений.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Создайте приложение на Node.js, которое считывает большой текстовый файл построчно и анализирует количество слов в каждой строке. Приложение должно использовать потоковое чтение (streams), чтобы эффективно обрабатывать большие файлы, не загружая их целиком в память.
•
node app.js analyze filename.txt
— считывает файл filename.txt построчно, подсчитывает слова в каждой строке и выводит их общее количество для каждой строки в консоль.Решение задачи
const fs = require('fs');
const readline = require('readline');
const path = require('path');
function analyzeFile(filePath) {
const lineReader = readline.createInterface({
input: fs.createReadStream(filePath),
crlfDelay: Infinity
});
lineReader.on('line', (line) => {
const wordCount = line.trim().split(/\s+/).filter(Boolean).length;
console.log(`Строка: "${line}" - Количество слов: ${wordCount}`);
});
lineReader.on('close', () => {
console.log('Анализ файла завершён.');
});
}
const filePath = process.argv[2];
if (!filePath) {
console.error('Укажите путь к файлу для анализа.');
process.exit(1);
}
const fullPath = path.resolve(filePath);
analyzeFile(fullPath);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Сегодня мы рассмотрим, как обнаружить и реагировать на изменение атрибутов веб-компонента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Опыт работы со Strapi и настройка отправки файлов в S3. В статье поделюсь шагами интеграции и кастомными скриптами для работы с облачным хранилищем S3. Удобные решения для новичков и не только.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Разработчик Node.js
•
Node.js, Nest.js, TypeScript, TypeOrm, Redis, Memcached, PostgreSQL, Kafka•
Уровень дохода не указан | от 3 лет опытаNode.JS разработчик
•
Node.js, NestJS, Next.js, Oracle, MsSql, PostgreSQL, REST, SOAP, XML, JSON, RabbitMQ, Kafka, ActiveMQ, ELK, Docker, Kubernetes, SOLID, Git, JIRA, Confluence•
Уровень дохода не указан | от 3 лет опытаFullstack Vue/Node.js разработчик
•
Vue.js, VUEX, Node.js, Bootstrap 3-4, JavaScript (DOM), npm, git, jira, Oracle, Unit-тестирование, Webpack, Gulp•
Уровень дохода не указан | от 4 лет опытаPlease open Telegram to view this post
VIEW IN TELEGRAM
• Пришёл на вакансию дизайнера, а стал питонистом: как IT-специалисты нашли свою первую работу
• На сколько денег может рассчитывать ИТ-предприниматель в разных ветках развития
• Анализ задачи с собеседования в Google: конь и телефонные кнопки
• Быстрый старт в QA Fullstack: чем вооружиться будущему стажеру в Альфа-Банке
• Как убить самоорганизацию в команде: вредные советы для лидера
Please open Telegram to view this post
VIEW IN TELEGRAM
♟ Эпопея шахматных движков: мой опыт в разработке шахматной программы
В этой статье я расскажу про личный опыт написания шахматной программы на языке TypeScript. С какими проблемами столкнулся и пути к их решению.
Читать...
В этой статье я расскажу про личный опыт написания шахматной программы на языке TypeScript. С какими проблемами столкнулся и пути к их решению.
Читать...
👍2
process.nextTick()
в Node.js?Метод
process.nextTick()
добавляет коллбэк в очередь "next tick" в Node.js, позволяя выполнить функцию после текущей операции, но перед следующей итерацией цикла событий. Это полезно, когда нужно завершить текущую операцию, а затем немедленно перейти к следующей задаче, не дожидаясь полного завершения цикла событий.console.log('Начало');
process.nextTick(() => {
console.log('Вызов в nextTick');
});
console.log('Конец');
// Вывод:
// Начало
// Конец
// Вызов в nextTick
🗣 В этом примере process.nextTick() срабатывает сразу после выполнения синхронного кода, но до обработки задач из очереди цикла событий. Это делает nextTick() полезным для выполнения задач с высоким приоритетом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Статья знакомит с использованием NVM для управления версиями Node.js и npm, показывая примеры с Node.js 19 и npm 9. Объясняются преимущества NVM для безопасного обновления и тестирования новых возможностей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🤷♀1
В статье разбираются ключевые особенности Electron, его развитие и влияние на разработку десктопных приложений. Обсуждаются преимущества, примеры использования и удивительная история создания от GitHub.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Каждый раз вручную делаешь сборку, деплой или запускаешь тесты? Это тратит драгоценные минуты (а иногда часы).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Full-stack Developer / Technical Partner (TS, Node.JS)
Backend Engineer (Node.js)
Full Stack Developer (Node.js, TypeScript, SQL)
Please open Telegram to view this post
VIEW IN TELEGRAM
😐2👍1
JavaScript, незаменимый компонент современной веб-разработки, отличается универсальностью и мощью. Однако даже у такого популярного инструмента есть свои сложности. Давайте разберёмся в дополнительных, часто упускаемых из виду аспектах, делающих JavaScript менее идеальным в определённых ситуациях.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2