Как стать автором
Обновить
31.94

Node.JS *

Среда для запуска JavaScript-приложений

Сначала показывать
Порог рейтинга
Уровень сложности

Как сопоставить номера деталей с изображениями: Использование поиска Google и сравнения изображений в Node.js

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.4K

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

В данной статье представлен практический метод сопоставления номеров запчастей с их изображениями. Используя поисковую систему Google, мы соберем изображения, основываясь на марке и номере запасной части, а затем применим методы сравнения изображений с помощью Node.js, чтобы выявить наиболее подходящие изображения для каждой запчасти.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии4

Интеграция Поиска в Strapi: Meilisearch vs. Elasticsearch

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.6K

Всем привет! На связи Геворг, фронтенд техлид Work Solutions. Сегодня расскажу про интеграцию поисковых сервисов Meilisearch и Elasticsearch в Strapi.

Strapi — это популярный open-source фреймворк для разработки серверов, а также создания гибких API. Однако, встроенные средства поиска могут быть ограничены. Разработчики могут искать способы интеграции с внешними поисковыми системами. Две такие системы — Meilisearch и Elasticsearch. Они предоставляют возможность реализации полноценного поиска в проектах.

В статье рассмотрим, как интегрировать эти системы, сравним их особенности, определим, для каких задач подходят. Примеры рассматриваются для strapi v3. Однако информация также актуальна для v4 с некоторыми незначительными различиями в интерфейсах взаимодействия.  

На сайте компании можно посмотреть как работает поиск Meilisearch в Strapi в продакшне. Там же делимся особенностями реализации поиска в нашем блоге. Подробно сравниваем Meilisearch и Elasticsearch, способы их реализации, демонстрируем ограниченность встроенного поиска.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

End-to-end тестирование React приложения с помощью Playwright

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров16K

Привет, я Лиза – веб разработчик в одной зарубежной компании. Хочу поделиться тем, как я автоматизировала регрессионное тестирование в рабочем проекте на React с использованием довольно нового фреймворка Playwright. Разберемся, почему именно этот фреймворк, какие подводные камни, как обойти авторизацию и кто этим пользуется. 

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии9

Простой GPT-ассистент в Telegram на базе Яндекса и Node.js

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.3K

Всем привет! Это моя первая публикация на хабре, поэтому буду благодарен за любую обратную связь, которая поможет мне писать ещё лучше.

В статье вас ждёт "сборка" очень простой связки из распознавания и синтеза речи, а также запросов в модель YandexGPT на Node.js. Наш телеграм бот будет получать голосовое сообщение, а затем распознавать его, скармливать в модель GPT и синтезировать полученный ответ в голосовое сообщение.

Хочется начать с небольшого предисловия. В ходе написания этого простейшего решения я потратил кучу времени на попытку интегрироваться с популярным OpenAI ChatGPT, но мои нервы вышли из чата (обход блокировки, HTTPS прокси и т.п.), поэтому я перешёл к Яндексу. Он встречает нас дружелюбной консолью, понятной документацией и грантом на тестирование. В целом, если гранта по каким-либо причинам нет, то мне на все тесты хватило 20 рублей.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии7

Истории

Банки.ру: от монолита до микрофронтендов

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2.4K

Всем привет! Меня зовут Марсель Абдрахманов, я фронтлид в Банки.ру. В статье хочу поделиться нашей историей ухода от монолита к микрофронтендам. У нас в Банки.ру большой отдел веб-разработки, за последнее время мы сильно выросли, ежедневно катим десятки релизов на прод. Расскажу, как мы относительно быстро внедрили микрофронтенды и перешли на архитектуру, которая позволила сократить время доставки обновлений на прод с двух дней до нескольких часов.

Если интересно, прошу под кат.
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

Утечки памяти, которые не утечки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров20K

Что случилось? Авария, ужас-ужас

Статью я захотел написать после работы над одним конкретным багом, который со всех точек зрения напоминал классическую утечку памяти, но на практике оказался чем то совершенно другим. Я нигде не встречал описание такого поведения и поэтому решил этой информацией поделиться.

В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течёт, сервисы падают с OOM каждый день, все пропало!

Да, картинка действительно удручающая. Всё время, когда есть нагрузка, память в контейнере прирастает и почти не очищается при снятии нагрузки. Все остальные метрики, которые мы собирали были в норме: event loop lag, использование CPU, active request, open handles. Прирастала только используемая память и незначительно увеличивалось время отклика сервиса.

Что-ж, выглядит как классическая утечка, надо искать источник.

Читать далее
Всего голосов 108: ↑107 и ↓1+106
Комментарии15

Синхронизация локальных изменений с kubernetes контейнером. Часть 2

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.9K

В предыдущей статье показал вам как работают docker desktop watch, skaffold dev и tilt up, которые помогают синхронизировать локальные изменения в контейнер, что очень важно во время разработки.

На этот раз хочу показать DevSpace и Garden, эти инструменты очень похожи на Tilt, у них есть dashboard, как у Tilt, есть мгновенная синхронизация изменений и под катом вы увидите, как легко можно запустить проект в kubernetes и начать разрабатывать.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

Zod умер. Да здравствует ajv-ts

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.2K

TLRD: zod не подходил в проекте и решили сделать свой builder с помощью ajv в zod-like API. Поскольку гугление не показало никаких вменяемых результатов - было решено сделать свои костыли решения.

Если стало интересно - прошу под кат!

стало интересно, посмотрим что там!
Всего голосов 9: ↑7 и ↓2+5
Комментарии12

Коллекция утилит NestJS-mod для унификации приложений и модулей на NestJS

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров2K

Коллекция утилит NestJS-mod предназначена для унификации приложений и модулей NestJS, а также представляет новые логические возможности разделения обязанностей между модулями (System, Core, Feature, Integration, Infrastructure).

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Как мы используем Puppeteer для создания Open Graph изображений с Node.js

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.4K

В наше время многочисленные сайты создают страницы, которыми пользователи хотели бы делиться в разных социальных сетях или мессенджерах. Благодаря тегам Open Graph ссылки могут иметь красочное превью изображение, которое привлекает еще больше внимания. В этой статья я хотел бы рассказать как с помощью Puppeteer и node.js мы упростили поддержку и сократили время разработки при создании таких изображений.

Узнать больше
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

В плену JavaScript: как веб-разработка стала заложницей одного языка

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров11K

В мире веб-разработки JavaScript давно стал не просто инструментом, а основополагающей силой, без которой современный интернет трудно представить. Однако эта монополия языка несёт в себе не только преимущества, но и серьезные риски. Мы собрали ведущих экспертов по JavaScript, чтобы в рамках дискуссии на YouTube обсудить перспективы развития  языка и шансы его свержения с Олимпа веб-разработки.

Читать далее
Всего голосов 54: ↑47 и ↓7+40
Комментарии8

Решение Амазон капчи Waf Captcha на полном автомате, имея за плечами практически нулевой опыт в разработке

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.6K

Небольшой эпиграф - если вы делаете инструкцию, так делайте ее до конца, а то в инструкции как решить Амазон капчу - джун ногу сломит.

Собственно к чему все это? Да к тому, что когда мне потребовалось решить капчу от Амазон, пресловутую Waf Captcha я пошел копать на сервис, которым постоянно пользуюсь при работе с Кей Коллектором, и некоторыми другими сервисами (2капча - жаль Хабр банит статьи за реферальные ссылки).

Ну и нашел там инструкцию, ссылку на которую собственно и привел выше. Как вам вероятно стало понятно из эпиграфа - я ни черта не понял, вернее я понял, что надо использовать АПИ, но на этом все...

С Селениумом было реально проще.

Главная проблема - малый таймаут, который выделяется на решение со стороны Амазона. Время на решение капчи ограничено и если ответа нет, то капча обновляется (у нее обновляются 2 параметра - iv и context).
Получается, что таймаут свежести капчи около 30 секунд, а за это время необходимо найти на странице параметры, скопировать их, вставить в код скрипта и запустить его, после этого 2капча должна ее решить и вернуть правильный ответ. Я пробовал это сделать пару безуспешных часа, вырабатывал автоматизм действий, но увы, на поиск и замену изменяемых параметров уходит не менее 12-15 секунд, и остается от 15 до 18 секунд мы решение капчи сервисом, что в нынешних реалиях звучит достаточно фантастически.

Тут нужен другой подход, искать и подставлять параметры должен скрипт, но как его написать человеку, который в своей жизни ничего сложнее Ahrefs не видел?

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Кто на самом деле пользуется is-odd и is-even?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров15K

Разработчики любят подшучивать над раздуванием зависимостей Javascript (и вполне имеют на это право, учитывая историю пакетов наподобие left-pad); при этом часто упоминаются пакеты is-even и is-odd. Поэтому я заинтересовался, кто же на самом деле их использует?

Читать далее
Всего голосов 28: ↑27 и ↓1+26
Комментарии18

Ближайшие события

Создание сетевой игры с помощью Collagen_2, Node.js и библиотеки socket.js

Время на прочтение12 мин
Количество просмотров3.1K

В данной статье будет описан простой способ создания сетевой онлайн мини игры на подобии небольшой чат комнаты. Игроки могут передвигаться по полю игры, прятаться за деревьями, также есть возможность управлять камерой вида. Для тестирования игры необходимо скачать редактор зайти в папку collagen_2/games/game_3, ввести в командной строке forever start app.js. Для работы игры требуются модули socket.js и forever(глобальная инсталяция).

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Окей, я джуниор, как начать управлять?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.1K

Когда я только пришел в мир IT, для меня, как и, наверняка, для вас, было много чего непонятного и неизученного. Это было мостиком моей мотивации, удерживающим меня в этой индустрии, но по мере того как ты завязываешь в узелок все свои накопленные знания, появляется уверенность в кое-какой стабильности, а следовательно — новый вопрос...

Читать далее
Всего голосов 26: ↑14 и ↓12+2
Комментарии92

JavaScript однопоточный или многопоточный? Ставим точку

Время на прочтение11 мин
Количество просмотров30K

Поводом для ревизии данного вопроса стало то, что я по сей день слышу от специалистов (в том числе позиционирующих себя как senior), что современный JavaScript является однопоточным. При этом они охотно задают этот вопрос на техническом интервью, вводя неуверенных кандидатов в заблуждение.

Читать далее
Всего голосов 46: ↑40 и ↓6+34
Комментарии186

Работа с ETH, BSC, TRX кошельками на сервере NodeJS — отправка транзакций, получение баланса, генерация мнемоники

Время на прочтение14 мин
Количество просмотров2.1K

Удивительно, как мало готовых решений для работы с крипто-кошельками на серверной стороне. А конкретно для таких базовых задач, как: отправка самой монеты, отправка токенов, получение баланса, подпись транзакций.

Опытные - ничего нового в этой статье не найдут, но она будет полезна тем, кто ради базовых функций не хочет штудировать документацию tronweb, web3 и прочих библиотек для работы с криптомиром. По сути - я просто хочу собрать в одном месте полезные кусочки кода.

Читать далее
Всего голосов 9: ↑6 и ↓3+3
Комментарии3

Крупномасштабный стриминг видео с использованием Kubernetes и RabbitMQ

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров12K
Давайте поговорим о тех проблемах, с которыми приходится сталкиваться на сайтах для стримингового видео, и как организовать архитектуру такого сайта, чтобы было проще справляться с нагрузками.

image
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии17

Serverless в первый раз

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.6K

Давно я приглядывался к Serverless технологиям, но все не доходили руки. Как и во многих компаниях, там где я работаю есть строгое разделение на бэкендеров и фронтендеров. Проблемы у этого известные и самая неприятная — надо договариваться, а разработчики далеко не всегда самые общительные люди.

Но однажды все поменялось...
Всего голосов 18: ↑17 и ↓1+16
Комментарии24

DagazBot — Хранитель ключей и мётел

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров943
История проекта Dagaz прошла у вас перед глазами. Когда я только начинал писать про Zillions, главным возражением было то, что платформа эта платная и запускается только под Windows. Появился Dagaz — полностью бесплатный проект с открытой лицензией и общедоступным исходным кодом, игры которого можно запускать из браузера, даже на мобилках. Блокирующим фактором стало отсутствие адекватных ботов. Пришлось осваивать GarboChess и разрабатывать DagazServer, на котором игроки могли бы играть по сети друг с другом. Это стало большим шагом вперёд, но на сервере требуется авторизация, а логины и пароли — это как раз то, что забывается легче всего. Счастлив сообщить, что теперь их запоминать не надо.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3