Как стать автором
Обновить
3.57
Рейтинг

Node.JS *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Почему я ненавижу JS или как я в 15 лет переписывал свой интернет-магазин

JavaScript *Программирование *.NET *Node.JS *C# *

Я написал интернет-магазин для магазинов мяса на Blazor Server. Попробовал переписать его на React + Node.

Сейчас расскажу, почему после этого я так возненавидел JS...

Читать, почему я ненавижу JS
Всего голосов 72: ↑28 и ↓44 -16
Просмотры 15K
Комментарии 89

Как сконфигурировать NextJS сервер с полной поддержкой кэширования в Redis

JavaScript *Node.JS *ReactJS *
Tutorial

Шаг 1. Установка NextJS

yarn create next-app

Шаг 2. Установка пакетов:

yarn add express redis node-gzip

Шаг 3. Создаем в  корне проекта файл server.js

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

Осенний экспресс прибывает: анонс TechTrain 2021 Autumn

Блог компании JUG Ru Group Java *Разработка под Android *Node.JS *Data Engineering *

IT-экспресс TechTrain мчится в онлайн и открывает наш осенний сезон конференций.

Это бесплатное мероприятие, где с 8 докладами на самые разные темы выступят спикеры самого разного профиля. Пишете вы на Kotlin или C++, ближе вам DevOps или дата-инжиниринг — найдется доклад для вас.

Чтобы запрыгнуть на бесплатный осенний поезд, который отправится 18 сентября, достаточно пройти регистрацию на сайте.

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

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

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

Websocket API на nodejs по новому

JavaScript *Node.JS *API *TypeScript *
Tutorial

О чем эта статья?

1. uWebsockets.js - высокопроизводительная реализация http/websocket сервера для nodejs

2. AsyncAPI - спецификация для асинхронного API, с помощью которой можно создать описание Websocket API

3. Простой пример websocket API с использованием библиотеки wsapix:
- создадим websocket сервер, используя uWebsockets.js
- настроим валидацию получаемых и отправляемых сообщений
- добавим генерацию документации из кода

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 7.1K
Комментарии 9

Архитектура приложения стартапа. Взгляд с высоты птичьего полета

Анализ и проектирование систем *Node.JS *ООП *TypeScript *Микросервисы *

Приветствую всех читателей Хабра.

Немного разбросал текущие дела и пришло время для написания следующего поста в моем запланированном цикле статей:

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 2.7K
Комментарии 6

JavaScript: об очистке данных, хранящихся на стороне клиента, по сигналу сервера и немного о карте импортов

Блог компании Timeweb Разработка веб-сайтов *JavaScript *Программирование *Node.JS *


Введение


Привет, друзья!


Представляю вашему вниманию результаты небольшого исследования, посвященного очистке данных, хранящихся на стороне клиента по сигналу сервера. Речь идет об относительно новом HTTP-заголовке Clear-Site-Data. Также в этой статье мы немного поговорим про карту импортов (imports map).


Статья состоит из двух частей: теоретической и практической.


В теоретической части мы кратко рассмотрим карту импортов и более подробно Clear-Site-Data.


В практической части мы поднимем два сервера — один будет запускаться локально и, помимо прочего, обслуживать статические файлы нашего приложения, другой мы развернем на Heroku. Сначала мы запросим данные (включая куки) от серверов, сохраним эти данные в браузере с помощью трех наиболее популярных механизмов (локальное хранилище, индексированная база данных и интерфейс кеширования), затем попробуем очистить их с помощью заголовков Clear-Site-Data. Для разрешения путей импортируемых в приложении модулей мы будем использовать карту импортов.


Исходный код проекта находится здесь.

Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Просмотры 3.9K
Комментарии 0

Node.js кросс-доменная инъекция Cookie

JavaScript *Node.JS *Браузеры Email-маркетинг
Из песочницы
Tutorial

Кросс-доменная инъекция Cookie на Node.js, где это можно использовать, и как это реализовать.

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Просмотры 3.2K
Комментарии 7

SSE, нотификации, Node.js и при чём тут C#?

Анализ и проектирование систем *Серверная оптимизация *Node.JS *C# *Распределённые системы *
Из песочницы

Вписавшись в очередной провальный заранее стартап, мне прилетела задача: нужны уведомления на сайте. Ладно - сказал я себе. Открываю любимую IDE и начинаю писать очередной микросервис.

До этого я никогда не занимался уведомлениями, но был осведомлен, что есть для этого несколько путей: WebSocket, SSE и Long Polling.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 6.1K
Комментарии 13

Publish-Subscribe на TypeScript — уменьшаем связанность

JavaScript *Node.JS *ООП *ReactJS *TypeScript *

Известно, что одним из признаков хорошего архитектурного дизайна является слабая связанность между отдельными модулями приложения. Достичь этого можно разными способами: Dependency Injection, с помощью паттернов проектирования Mediator, Publish-Subscribe и некоторыми другими, многие из которых так или иначе реализуют принцип инверсии зависимостей, ответственных за уменьшение связанности. Об одном из таких паттернов, а именно о Publish-Subscribe (далее PubSub) мы сегодня и поговорим. А заодно, предлагаю рассмотреть мою собственную реализацию на TypeScript, построенную на декораторах - люблю я декларативный подход, ничего тут не сделаешь.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.8K
Комментарии 3

Использование паттерна BFF для создания общих типов в бэкенде и фронтенде

Блог компании ITSOFT Проектирование и рефакторинг *Node.JS *ReactJS *TypeScript *
Перевод
image

Контракт между бэкендным сервисом и фронтендным потребителем (или клиентом) обычно является местом соединения двух миров. Такой контракт может принимать форму спецификации REST API, конечной точки GraphQL, или чего-то другого. Главное, чтобы он сообщал обеим сторонам, чего ожидать друг от друга.

Такова любовная история между бэкендом Node.js и фронтендом React. Живя в разных мирах, они нашли общий язык для общения, но этого было недостаточно — всё равно случались недопонимания: иногда один ждал, что другой скажет что-то такое, чего второй не может выразить. Такой была ситуация до недавнего времени, когда произошла генерализация TypeScript (и типов TypeScript), благодаря которой они начали говорить на одном языке.

Давайте узнаем, что такое шаблон BFF (нет, это не шаблон Best Friends Forever, как бы здорово это ни звучало), и разберёмся, как типы TS могут помочь нам создать надёжный контракт между бэком и фронтом.
Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 2.5K
Комментарии 19

NEST-NEXT: Best Practices — Часть 2

Разработка веб-сайтов *JavaScript *Node.JS *ReactJS *
Tutorial

Это вторая часть статьи о применении комбинации технологий nest.js и NEXT.js. В первой части был создан и настроен проект, а также выбран способ отправки данных для SSR, в результате чего проект уже удовлетворял большинство потребностей при разработке простого сайта. В этой части можно узнать о том, как выжать максимум пользы из nest-next: Hot Module Replacement, CDN, удобный SSR и разворачивание "за слешом".

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

NEST-NEXT: Best Practices — Часть 1

Разработка веб-сайтов *JavaScript *Node.JS *ReactJS *
Из песочницы
Tutorial

Это первая часть статьи о применении комбинации технологий nest.js и NEXT.js, где будет рассмотрено создание проекта, подключение фреймворков и выбор эффективного способа работы с SSR. Во второй части можно узнать о HMR, использовании данных при SSR и разворачивании "за слешом".

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

Opensource система умного дома на nodejs

Node.JS *Умный дом
Из песочницы

Привет, Хабр! Хочу поделиться своим проектом, который разрабатывал почти год - appex-system.

Дело началось с того, что я закончил изучение ноды. Нужно было запилить какой-нибудь проект, чтобы потренироваться, и я решил объединить 2 любимых дела - программирование и самоделки. И вот что из этого получилось.

Умный дом делится на устройства. Устройством может быть как одна плата (например esp8266), так и несколько (люстра, состоящая из 4 умных лампочек). Для каждого устройства пишется отдельное приложение на js. Устройство в месте с приложением объединяются в комнату, наподобие группы в телеграм, где и происходит их общение.

В каждой комнате имеется объект состояния. В свойствах этого объекта хранятся все нужные для работы данные - например статус лампочки. Общение между платами и приложением происходит по протоколу web sockets. Если запускать сервер локально, то ардуина получит команду через 4 миллисекунды после нажатия кнопки в приложении - вполне не плохо.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 5.6K
Комментарии 11

Как искать и выбирать npm-пакеты? Шпаргалка для начинающих

Блог компании HTML Academy Разработка веб-сайтов *JavaScript *Node.JS *
Tutorial

Что делает разработчик, если ему нужно раскрасить кнопку в красный цвет? Ищет в npm пакет, окрашивающий кнопки в красный цвет

В реестре npm — более миллиона пакетов почти для чего угодно. Например, с их помощью можно минифицировать код, удалять и переименовывать файлы, создавать спрайты, отправлять сообщения в центр уведомлений операционных систем, работать с препроцессорами Less и Sass и выполнять многие другие действия, упрощающие и автоматизирующие работу над проектом. 

Конечно, бездумно использовать менеджер пакетов не стоит: некоторые задачи можно решить и без него. Но всё же npm-пакеты полезны и постоянно применяются в веб-разработке. Поэтому важно знать, как их правильно выбрать, где искать и на что обратить внимание перед установкой.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 5K
Комментарии 7

Интерфейсы для встраиваемых устройств на современных Web-технологиях

Блог компании DataArt Интерфейсы *Node.JS *Разработка на Raspberry Pi *Носимая электроника
Tutorial

Автор: Николай Хабаров, Principal IoT/IoMT Architect в DataArt

Начнем с того, что интерфейс необходим любому устройству. Ведь пользователю придется с ним взаимодействовать — значит, нужны какие-то кнопки, рычажки, лампочки или дисплей. Некоторые устройства подключаются через USB-кабель к компьютеру, на который нужно установить драйверы и специальное ПО для управления. Некоторые устройства, построенные на обычном железе для ПК, снабжены собственными дисплеями для демонстрации данных и контрольными панелями. В обоих случаях софт для них обычно пишут на сложных языках программирования вроде C++, а создание автономных или встраеваемых приложений для них требует от разработчика специальных навыков. Программное обеспечение для них, как правило, зависимо от операционной системы, и попытка апгрейда любого компонента устройства (например, замена дисплея на более совершенную модель) часто оборачивается серьезной проблемой.   

В статье я постараюсь разобраться, существует ли более удобное решение для создания графических интерфейсов встраиваемых устройств. В первой части обсудим, как сделать UI для устройств с дисплеем. Затем рассмотрим разработку совместимых с ПК девайсов без собственного UI, используя те же самые технологии. 

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Просмотры 3.5K
Комментарии 9

Data Science на JavaScript без Python

Блог компании SkillFactory JavaScript *Программирование *Node.JS *
Перевод
Tutorial

Мы уже писали о том, как запустить Python в браузере, а сегодня к старту флагманского курса по Data Science расскажем, как привычные для Python задачи решаются на JavaScript. Если вы знакомы только с JS и хотите попробовать Data Science, не покидая зону комфорта, (или, наоборот, хотите познакомиться с JS), просто хочется необычных экспериментов или нужно интегрировать небольшую управляемую визуализацию о статистике на сайт, читайте подробности под катом.

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

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Просмотры 4.8K
Комментарии 1

Рынку CRM нужны новые open-source продукты

Node.JS *CRM-системы *

За почти 20 лет существования CRM на российском рынке эта технология перестала считаться модной фичей или привилегией крупных корпораций — сейчас системами пользуется и малый, и средний бизнес. Поначалу «умная система» вызывала большое уважение, желание уволить половину отдела продаж и перестроить под нее всю бизнес-модель. Сейчас же руководители понимают, как работает инструмент, зачем он нужен и на что способен, и хотят подстроить его под свои нужды, которые могут быть достаточно специфичными. Однако популярные CRM-системы — например, Битрикс24 или amoCRM, — не всегда способны предоставить хорошее решение на запросы клиентов.


В чем проигрывают флагманские продукты


Разберем кейс. Клиент — компания, которая продает медицинские товары и оборудование. Специфика их деятельности требует предельной точности, вплоть до подсчета копеек. AmoCRM, которой они пользуются, такой возможности не предоставляет.



Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Просмотры 5K
Комментарии 27

npm audit работает неправильно — это настоящий театр безопасности

Блог компании ITSumma Информационная безопасность *Open source *Node.JS *ReactJS *
Перевод
Безопасность важна. Никто не хочет выступать против безопасности. Поэтому все замалчивают проблему с npm audit. Но кто-то должен сказать.

Думаю, придётся мне.

npm audit работает принципиально неправильно. Проверка по умолчанию на каждый npm install — поспешный, непродуманный и неадекватный подход.

Слышали историю про мальчика, который часто кричал «Волк!»? Спойлер: в результате волк съел овец. Если мы не хотим такого итога, нам нужны лучшие инструменты.

На сегодняшний день npm audit — это пятно на всей экосистеме npm. Надо было исправить его с самого начала, но лучше поздно, чем никогда.
Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Просмотры 4.6K
Комментарии 6

Идеальный инструмент для работы с СУБД без SQL для Node.js или Все, что вы хотели знать о Sequelize. Часть 3

Разработка веб-сайтов *JavaScript *Программирование *Node.JS *

Доброго времени суток, друзья!


Представляю вашему вниманию руководство по Sequelize.


Sequelize — это ORM (Object-Relational Mapping — объектно-реляционное отображение или преобразование) для работы с такими СУБД (системами управления (реляционными) базами данных, Relational Database Management System, RDBMS), как Postgres, MySQL, MariaDB, SQLite и MSSQL. Это далеко не единственная ORM для работы с названными базами данных (далее — БД), но, на мой взгляд, одна из самых продвинутых и, что называется, "battle tested" (проверенных временем).


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


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


Первая часть.
Вторая часть.


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

Читать дальше →
Рейтинг 0
Просмотры 2.5K
Комментарии 0

Вклад авторов