Рубрика «nodejs»

Когда в октябре 2024-го заблокировали Дискорд, я сидел в голосовом канале с друзьями. Связь оборвалась, все полезли за впн-ками, кто-то ушёл в Телеграм, кто-то просто пропал. Серверы, которые мы строили годами, с каналами, ролями, ботами, в один момент стали недоступны.

Я фрилансер, пишу на React и Node.js. В тот вечер подумал: а насколько сложно вообще сделать свой мессенджер с серверной структурой? Не чат на вебсокетах из туториала, а нормальный. С серверами, каналами, ролями, голосовыми комнатами, ботами. Такой, чтобы можно было перетащить своё сообщество и не чувствовать разницы.

Оказалось, сложно. Но я всё равно сделал.

Читать полностью »

Переход на UUID v7

Переход на UUID v7

В системах, где генерируются миллионы событий в день (например логи), первичные ключи часто строятся на основе UUID. Это логично: они глобально уникальны, не требуют централизованного генератора и хорошо масштабируются.

Читать полностью »

Пролог

Сайты появились практически сразу после создания всемирной паутины. С каждым десятилетием браузеры и web-сервера развивались, каждое новое поколение меняло языки программирования и стандарты, с каждым разом индустрия предлагает всё более новый ��одход к разработке сайтов и web-приложений.

Читать полностью »

Знаете это чувство, когда открываешь контроллер в Express проекте, чтобы поправить одну строчку логики, и видишь ЭТО? Бесконечная вложенность, проверки на существование полей, ручной парсинг ошибок от базы данных и, конечно же, его величество try-catch, который занимает 80% файла.

Я тоже через это проходил. В каждом новом микросервисе я копипастил одни и те же функции обработки ошибок. В одном проекте я ловил ошибки Mongoose через err.name === 'ValidationError', в другом — через instanceof. Где-то мы отдавали { error: "message" }, где-то { status: "fail", msg: "..." }.

Читать полностью »

Вступление

Эта статья о том, как настроить Squid proxy с SSL bump в Docker и организовать realtime-мониторинг логов. В качестве практического примера я покажу open-source решение на современном стеке (Bun + Redis + Vue), которое решает проблему устаревших инструментов мониторинга.

Исходный код проекта: GitHub

Скриншоты приложения:

Привет, Habr

Сделал забавного бота который стал ещё и довольно полезным поэтому решил им поделиться. Хотелось сделать бота, который:

  • По запросу пойдёт в интернет и найдёт то, что мы обсуждаем прямо сейчас, так как он видит контекст беседы и часто понимает, о чём идёт речь, и в ответе даст ссылки на источники, которые найдёт

  • Понимает контекст беседы и не требует объяснять ему каждую деталь

  • Знает какой сейчас год и точное время и учитывает это при поиске информации и при ответах

  • Имеет характер и помнит, кто и как к нему относится в этом чате

  • Расшифровывает голосовые сразу для всего чатаЧитать полностью »

Когда руководство решило перевести проектный трекинг с Яндекс.Трекера на JIRA, мы быстро поняли: простого "экспорта-импорта" не будет. Ни одно из готовых решений не справлялось с задачей полноценно — а именно с сохранением всей истории, авторства, чек-листов, вложений, связей, ссылок на другие задачи и пользователей, и даже оригинальной нумерации задач из Яндекс.Трекера.

Что ж, вызов принят. Ниже расскажу, как я за 3 месяца написал систему, которая перенесла всё — до последней запятой в комментарии.


🔍 Цель миграции

Читать полностью »

Инициализация проекта на express и установка требуемых библиотек::

npm init -y
npm i express body-parser jsonwebtoken nodemon dotenv pg argon2 cookie-parser

Меняем в package.json: нужно добавить type и скрипт dev

  "main": "index.js",
  "type": "module",
  "scripts": {
    "dev": "nodemon app.js"
  },

Создаем app.js в корневой папке

Вступление

Привет! Опять я со своим "а что если попросить artificial intelligence...". В этот раз попросил сразу две — одна нарисовала интерфейс, вторая написала код. Получилось настолько рабочее, что сам теперь пользуюсь. Исходники на GitHub, демо живое — все ссылки в конце, но сначала расскажу, как это было.

20 мая прошла 18-ая конференция Google I/O 2025, на которой показали довольно много всего интересного. И меня, как дизайнера, очень сильно заинтересовал новый сервис stitch.withgoogle.comЧитать полностью »

WebAssembly голыми руками - 1

WebAssembly являясь (относительно) молодой технологией уже довольно распространён в индустрииЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js