Node.JS [ru] | Серверный JavaScript
11.5K subscribers
91 photos
6 videos
25 files
3.16K links
Все о разработке backend части на JavaScript (Node JS).
А так же: Express JS, Next JS, Nest, Socket.IO

Канал на бирже - https://telega.in/c/we_use_js

По вопросам рекламы или разработки: @g_abashkin

РКН: https://vk.cc/cJPGOP
Download Telegram
​​eo-locale - легковесная библиотека интернационализации, основанная на Internationalization API

- Работает в браузерах и в Node.js
- Может быть использована с чистым JavaScript или React
- Очень маленький размер
- Формат следует стандарту ICU
- Поддерживает 150+ языков
- Можно использовать HTML в строках (не только обычный текст)
- Поддерживает React компоненты как переменные
- Написана на TypeScript
- Оптмизирована для тришейкинга

#jslib #javascript #frontend #webdev #nodejs #backend #intl
tslog - мощный TypeScript логгер для Node.js

- Нативная V8 интеграция
- Полностью типизирован
- Красивый / JSON вывод
- Поддерживает циклические структуры
- Можно встраивать другие логгеры
- Интерполяция объектов и ошибок
- Стек-трейсы через нативное V8 API
- Работает с TS и JS
- Маскировка ключей / секретных переменных
- Нативная поддержка ID запросов (с помощью async_hooks)
- CommonJS и ES модули с тришейкингом
- Хорошая документация

#jslib #javascript #nodejs #typescript
next-api-decorators - коллекция TypeScript декораторов для API в Next.js

Позволяет создавать API эндпоинты в Next.js при помощи декораторов.

- Валидация запросов
- Декораторы для HTTP запросов, установки статус-кода, получения URL параметров, заголовков и содержимого запроса
- Трансформация разных типов для URL параметров и содержимого запроса (например парсинг строк в булевое значение)
- Исключения, можно создавать свои на основе HttpEexception класса

#jslib #javascript #nodejs #backend #nextjs #webdev
Вышел tinyhttp 1.3

- Поддержка Range заголовка для res.sendFile
- Content-Encoding и Last-Modified заголовки для res.sendFile
- Поддержка массивов для эндпоинтов (например app.use('/', [w1, w2]))
- Заголовки для кэширования в res.sendFile

#jsrelease #tinyhttp #nodejs #backend #webdev #javascript
​​Портативные веб приложения с Next.js и Go

В недавних версиях Go было добавлено встраивание файлов внутрь бинарника

Автор статьи нашёл интересное применение этому функционалу — внедрение Next.js приложений в статический бинарник

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

#jsarticle #nextjs #backend #webdev #javascript #nodejs #golang
Ley - инструмент для миграций баз данных, не привязанный к драйверу

- Поддерживает postgres, pg, better-sqlite3, sqlite, mysql, mysql2 из коробки
- Если нужен драйвер, который не поддерживается, его можно добавить через класс Driver
- Не имеет зависимостей
- Любую миграцию можно откатить
- Не изобретает велосипед и использует интерфейс выбранного драйвера
- Можно расширять функционал Ley CLI для написания своих скриптов миграции

#jslib #nodejs #backend #webdev #migrations #pg #javascript #sqlite #mysql #sql
wasm-run - CLI для запуска WebAssembly файлов

- Работает с WASM и WASI
- Можно выставлять таймаут выполнения (через флаг --timeout)
- Возможность вызывать отдельные функции через флаг --invoke <func>
- Аргументы функции передаются как CLI аргументы

#jstools #webassembly #nodejs #javascript
node-http - Deno HTTP сервер, похожий по API на Node.js HTTP модуль

Полезен для менее болезненного портирования серверных библиотек с Node.js на Deno, т.к. обладает похожим API.

Проект находится в активной разработке, поэтому со временем будет перенесено множество свойств из Node.js http модуля

#jslib #deno #backend #webdev #nodejs #typescript
Emittery - простой и современный асинхронный Event Emitter

Стандартный EventEmitter из Node.js не поддерживает синхронность, и обработка ошибок происходит через событие error вместо стандартного try ... catch

Emittery - улучшенная версия EventEmitter, которая работает асинхронно, поддерживает логгинг а также имеет хорошую поддержку TypeScript (с дженериками для более удобной типизации емиттеров)

#jslib #nodejs #backend #javascript
apollo-datasource-http — Оптимизированный HTTP Data Source для Apollo GraphQL сервера

- JSON по умолчанию
- поддержка HTTP/2 (нужен Node.js 15+)
- Использует got для HTTP запросов
- LRU (least recently used) кэширование для уменьшения нагрузки на сервер
- Поддержка AbortController для ручной отмены запросов
- Поддержка Apollo Cache Storage

#jslib #graphql #backend #webdev #apollo #nodejs #javascript