В этой статье:
• Токены (access и refresh) сохраняются в HttpOnly куки
• Перед каждым запросом проверяется наличие access-токена
• Если токен отсутствует — отправляется запрос на обновление через refresh
• Всё происходит без участия пользователя
🔊 Читать статью на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥4
Анимация загрузки в консоли!
Если твой скрипт что-то делает несколько секунд то можно удобно показать, что он жив. В консоли сделаем лоадер, который крутится, пока идёт задача. Всё это без библиотек.
Пример кода:
🔥 Этот лоадер можно встраивать в консольные утилиты, сборки, загрузки или любые скрипты.
⚙ Backend Ready | #практика
Если твой скрипт что-то делает несколько секунд то можно удобно показать, что он жив. В консоли сделаем лоадер, который крутится, пока идёт задача. Всё это без библиотек.
Пример кода:
const frames = ["|", "/", "-", "\"];
let i = 0;
const spinner = setInterval(() => {
process.stdout.write("\r" + frames[i++ % frames.length]); // перезаписываем строку
}, 100);
setTimeout(() => clearInterval(spinner), 3000); // остановка
🔥 Этот лоадер можно встраивать в консольные утилиты, сборки, загрузки или любые скрипты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥4
Полный практический разбор современного процесса деплоя backend-приложений. На базе простого проекта изучаются ключевые этапы: создание Docker-образа, настройка docker-compose, конфигурация удалённого сервера, работа с GitLab CI/CD и пайплайнами.
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤1
Каждый запрос проходит через цепочку функций: логирование, проверка, обработка, ошибки.
Понимание req, res, next и порядка это контроль над потоком и качественная архитектура.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥5👍4🤝1
Например методы
map()
, filter()
, find()
и другие — это быстрый способ трансформировать, искать и фильтровать данные в массивах.На картинке — 7 ключевых методов массивов.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5🤝1
Ты хочешь открыть файл и получить текст в нужной кодировки? Вот два рабочих способа:
•
fs.readFile(..., "utf8")
— самый быстрый и очевидный. Указываешь "utf8" прямо при чтении, и сразу получаешь строку.•
Buffer.toString("utf8")
— читаешь как буфер, а потом вручную расшифровываешь. Это даёт контроль, можно обработать другие кодировки, делать проверки и отложенное декодирование.🔥 — если узнал что-то новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3👍3🤝1
❤9👍6🔥5
Проверяем, свободен ли порт!
Когда ты запускаешь сервер, бывает ошибка: порт уже занят. Например, старый процесс не закрылся или другой сервис уже слушает этот порт.
Чтобы не ловить такие ошибки на горячую, проверим порт заранее — прямо в коде.
Подключаем модуль net, который позволяет работать с TCP-соединениями:
Создадим функцию
Вызовем её для порта 3000 и выведем результат:
🔥 Мы создаём временный сервер:
Если порт уже занят — получаем ошибку.
Если всё ок — закрываем сервер и считаем порт доступным.
⚙ Backend Ready | #практика
Когда ты запускаешь сервер, бывает ошибка: порт уже занят. Например, старый процесс не закрылся или другой сервис уже слушает этот порт.
Чтобы не ловить такие ошибки на горячую, проверим порт заранее — прямо в коде.
Подключаем модуль net, который позволяет работать с TCP-соединениями:
const net = require("net");
Создадим функцию
isPortFree
, которая пытается временно запустить сервер на нужном порту:function isPortFree(port, cb) {
const srv = net.createServer()
.once("error", () => cb(false))
.once("listening", () => {
srv.close();
cb(true);
})
.listen(port);
}
Вызовем её для порта 3000 и выведем результат:
isPortFree(3000, (free) => {
console.log(free ? "Порт свободен" : "Порт занят");
});
🔥 Мы создаём временный сервер:
Если порт уже занят — получаем ошибку.
Если всё ок — закрываем сервер и считаем порт доступным.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Git Graph — мощный плагин, который показывает древовидную структуру коммитов в виде наглядной граф-схемы: ветки, слияния, история — всё как на ладони.
Особенно удобен, если работаете в нескольких ветках или сопровождаете чужой проект — сразу видно, что где происходило.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤5👍4
Для утилит не всегда нужен
Jest
. Иногда хочется просто быстро проверить поведение без зависимостей и настройки.В этом посте:
• Создадим test() функцию.
• Проверим синхронный и async код.
• Получим вывод ошибки
Подходит для мини-проектов, скриптов и тестов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥4