Обновить
64K+

Node.JS *

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

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

Нет, вам не нужен Express в вашем REST API на Node.js

Время на прочтение3 мин
Охват и читатели31K
image

Об альтернативах Express, где и почему стоит отказаться от Express'a и небольшие замеры в переводе под катом

Читать дальше →

19 идей для Node.js-разработчиков, которые стремятся вырасти над собой в 2019 году

Время на прочтение16 мин
Охват и читатели39K
Автор материала, перевод которого мы публикуем, собрал 19 идей, которые могут оказаться полезными для тех Node.js-разработчиков, которые хотят повысить свой профессиональный уровень в 2019 году. Мир JavaScript огромен, поэтому освоить всё то, о чём пойдёт здесь речь, попросту нереально. Вряд ли найдётся кто-то, кто владеет всем этим в совершенстве. Однако кое-что в этом обзоре вполне может пригодиться именно вам.


Читать дальше →

Инструмент автоматизации управления версиями

Время на прочтение3 мин
Охват и читатели18K
Всем привет!

Всегда было интересно, что такое версии продукта и как ими управлять? Как автоматизировать управление версиями разработки? Прошу под кат.


Читать дальше →

ECMAScript-модули в Node.js: новый план

Время на прочтение3 мин
Охват и читатели14K

Текущий статус поддержки ECMAScript-модулей (ESM) в Node.js:


  • Экспериментальная поддержка ESM была добавлена в Node.js 8.5.0 12 сентября 2017 года.
  • После этого Технический Руководящий Комитет Node.js сформировал команду, ответственную за модули (Modules Team), чтобы она помогла спроектировать недостающие части для грядущего (не экспериментального) релиза. Эта команда состоит из людей из различных отраслей веб-разработки (фронтенд, бекенд, JS-движки, и т.д.).

В октябре Modules Team опубликовала "План по реализации Новых Модулей". Этот пост объясняет, что в нем содержится.

Читать дальше →

Эффективная работа с памятью в Node.js

Время на прочтение8 мин
Охват и читатели19K
Программы, в ходе работы, пользуются оперативной памятью компьютеров. На JavaScript, в среде Node.js, можно писать серверные проекты самых разных масштабов. Организация работы с памятью — это всегда непростая и ответственная задача. При этом, если в таких языках, как C и C++, программисты довольно плотно занимаются управлением памятью, в JS имеются автоматические механизмы, которые, как может показаться, полностью снимают с программиста ответственность за эффективную работу с памятью. Однако на самом деле это не так. Плохо написанный код для Node.js может помешать нормальной работе всего сервера, на котором он выполняется.



В материале, перевод которого мы сегодня публикуем, речь пойдёт об эффективной работе с памятью в среде Node.js. В частности, здесь будут рассмотрены такие концепции, как потоки, буферы и метод потоков pipe(). В экспериментах будет использован Node.js v8.12.0. Репозиторий с кодом примеров можно найти здесь.
Читать дальше →

Есть идея: система разрешений для npm-пакетов

Время на прочтение15 мин
Охват и читатели6.3K
Несколько дней назад я впервые запустил калькулятор на новом телефоне и увидел такое сообщение: «Калькулятор хотел бы получить доступ к вашим контактам».


Сначала мне это сообщение показалось немного грустным (похоже, калькулятору было одиноко), но этот случай заставил меня задуматься…
Читать дальше →

Машинное обучение с Node.js при помощи библиотеки Tensorflow.js

Время на прочтение10 мин
Охват и читатели35K
Привет всем, коллеги!

Возможно, поклонники библиотеки Tensorflow, уже заметившие у нас в предзаказе эту книгу, также присматривались к возможностям машинного и глубокого обучения в браузере, тем более, что тему не обошел вниманием и сам Франсуа Шолле. Интересующихся приглашаем под кат, где рассказано, как при помощи библиотеки Tensorflow.js распознаются изображения.
Читать дальше →

Как тестировать смарт-контракты

Время на прочтение7 мин
Охват и читатели13K
image

Условия смарт-контракта нельзя изменить. Поэтому всякий раз, когда вы создаёте смарт-контракт, нужно убедиться, что он работает правильно. Тестирование — безопасный способ проверить контракт в разных ситуациях. В этом туториале вы узнаете, какие шаги для этого нужно предпринять.
Читать дальше →

Неприятные ошибки при написании юнит тестов

Время на прочтение9 мин
Охват и читатели11K
На днях я буду делать внутренний доклад, на котором расскажу нашим разработчикам про неприятные ошибки, которые могут возникнуть при написании юнит тестов. Самые неприятные с моей точки зрения ошибки — когда тесты проходят, но при этом делают это настолько некорректно, что лучше бы не проходили. И я решил поделиться примерами таких ошибок со всеми. Наверняка ещё что-нибудь подскажете из этой области. Примеры написаны для Node.JS и Mocha, но в целом эти ошибки справедливы и для любой другой экосистемы.

Чтобы было интереснее, часть из них оформлена в виде проблемного кода и спойлера, открыв который, вы увидите, в чём была проблема. Так что рекомендую сначала смотреть на код, находить в нём ошибку, а затем открывать спойлер. Решения проблем указано не будет — предлагаю самим подумать над ним. Просто потому, что я ленивый. Порядок списка не имеет глубокого смысла — просто это очерёдность, в которой я вспоминал про всякие реальные проблемы, которые доводили нас до кровавых слёз. Наверняка многие вещи покажется вам очевидными — но даже опытные разработчики могут случайно написать такой код.

Читать дальше →

Frontend Mix — доклады про Node.js, масштабируемость и нативный веб

Время на прочтение2 мин
Охват и читатели5.2K

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


У вас есть фронтенд. Вам нужен BFF, и вы выбираете Node.js. Что-то настраиваете, разрабатываете, профилируете, и получается результат. Вы не понимаете, что делали, но вам объяснят.


У вас есть фронтенд. Еще вам нужно бесплатное масштабирование, поэтому вы берёте Node.js и смешиваете его с Comedy. Вы не понимаете, как с этим работать, но вам объяснят.



Виктор Исаев наглядно показывает, почему фреймворк Comedy — сила


Под катом три полезнейших доклада про внутренности Node.JS, инструменты, нативный веб, а ещё идеальное демо многопоточности в Node.JS с фреймворком Comedy.

Самые популярные Node.js-фреймворки 2018 года

Время на прочтение7 мин
Охват и читатели26K
Сегодня мы публикуем перевод материала, автор которого хочет рассказать о самых популярных в наши дни фреймворках для Node.js. В этот список входят Sails.js, Hapi.js, NestJS, LoopBack, Derby.js, Mean.io и Total.js.


Читать дальше →

Объясняем бэкдор в event-stream

Время на прочтение14 мин
Охват и читатели22K

Если вы работаете с Javascript, то скорее всего вы заметили много шума об уязвимости в npm-пакете event-stream. (На Хабре тоже опубликовали пост об этом — пер.) К сожалению, детальный анализ ситуации похоронен под более чем 600 комментариями в issue на Github, большая часть которых – флейм о состоянии npm, open-source в целом и т.д. Я подумал, что это плохо, потому что нам самом деле бэкдор исключительно умный и интересный с технической точки зрения, а также преподает нам важный урок о том, как поддерживать безопасность в приложениях на Javascript. Так что я решил написать пост с детальным объяснением, как сработала эта атака и что может сделать Javascript сообщество, чтобы лучше защититься от подобных атак в будущем.

Читать дальше →

Ext JS на сервере

Время на прочтение11 мин
Охват и читатели15K
фото от сюда https://github.com/tj/palette Когда речь заходит о библиотеке Ext JS, от знатоков приходится слышать довольно много негатива: тяжелая, дорогая, глючная. Как правило, большинство проблем связано с неумением ее готовить. Правильно собранный с использованием Sencha Cmd проект со всеми css, картинками весит в продакшне в районе 1Мб, что сопоставимо с тем же Angular. Да и глюков не сильно больше…

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

На мой взгляд, самое ценное в Ext JS не коллекция UI компонент, а довольно удачная архитектура ООП. Даже с учетом бурного развития JS в последние годы, многие нужные вещи которые были реализованы в Ext JS еще 7 лет назад, отсутствуют в нативных классах до сих пор (нэймспэйсы, mixins, статические свойства, удобный вызов родительских методов). Именно это побудило меня несколько лет назад поэкспериментировать с запуском Ext JS классов в бакэнде. Про первые подобные опыты я уже делал посты на Хабре. В этой статье описана новая реализация старых идей и ряд свежих.

Перед тем как начнем, внимание вопрос: как вы думаете, где выполняется и что делает приведенный ниже фрагмент кода?

Ext.define('Module.message.model.Message', {
....
    /* scope:server */
    ,async newMessage() {
        .........
        this.fireEvent('newmessage', data);
        ......
    }
...
})
Читать дальше →

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

DeezLoader + PlexMediaServer. Делаем домашний музыкальный портал

Время на прочтение2 мин
Охват и читатели8.9K
Attention!
The authors do not call to commit crimes! The usage of this tool may be illegal in your country. The authors give no guarantees at all and aren't responsible for any damage or harm of any kind resulting from the use of this software!

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

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

Не так давно наткнулся на deezer(не смейтесь) попользовался их платной подпиской мне очень понравилось, подписка закончилась, а оплатить из моего региона это ну прям очень сложная задача.
Читать дальше →

Жадный гном: Как я писал аналитику рынка в Lineage 2

Время на прочтение5 мин
Охват и читатели55K

Вот и наступила осенне-зимняя пора. За окном дожди и желания проводить время на открытом воздухе все меньше и меньше. И вот приходит мне сообщение от товарища "А давай поиграем в Lineage 2?". И опять я, поддавшись ностальгии, согласился. Выбрали мы свеженький сервер на ру-офе и создали персонажей.



 
В отличии от World of Warcraft в Lineage 2 совершенно другая система добычи игровой валюты. Нужно круглыми сутками охотиться на монстров с целью получения наживы. Для меня было даже открытием, что для некоторых людей RMT (Real money trading) является чем то вроде работы. Также, в игре присутствует экономика, которую формируют игроки. Иными словами, можно заработать на купи-продай или же покупать дешевые ресурсы, из них делать вещи и продавать с наценкой. Так как для нас игра остается чем то вроде отдыха именно такой способ получения игровой валюты был выбран нами.


Чтобы покупать и продавать предметы игрок должен находиться online (Скриншот сверху). Соответсвенно, кто-то хочет побыстрее продать (дешевле) а кто-то побыстрее купить (дороже). А что если разница продать — купить положительная? Как раз этот пример и будет рассмотрен в статье как итог.


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


Spoiler:
В статье будут использованы следующие технологии
Docker, DigitalOcean, NodeJs, Ktor, Prometheus, Grafana, Telegram bot notification

Читать дальше →

node.js serverside — работа над ошибками. Часть 1

Время на прочтение7 мин
Охват и читатели8K
Добрый день.

Эта статья ориентирована на разработчиков, имеющих представление о node.js.

Недавно готовил материал по фактам, которые полезно знать разработчикам под node.js в нашей конторе. Проекты, над которыми мы работаем — это API сервисы, использующие модуль node.js express в качестве веб-сервера. Материал основан на реальных случаях, в которых код работал неправильно или логика в нём была тщательно скрыта, или он провоцировал ошибки при расширении. На основе этого материала был проведён семинар по повышению квалификации сотрудников.

Вот, решил поделиться. Пока только первая часть, это около 30%. Если будет интересно, последует продолжение!

Я старался предоставить возможность быстрого ознакомления, поэтому примеры, рассуждения и комментарии спрятал в спойлерах. Если утверждения очевидны, «воду» можно пропустить. Хотя наши «грабли» в спойлерах тоже могут быть интересны.

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

Приступим!

Виртуальная машина node.js



Однопоточность



В отличие от javavm, nodejs-vm является однопоточной**.



Источник
Читать дальше →

[в закладки] PDF-версия руководства по Node.js и новое руководство по JavaScript

Время на прочтение2 мин
Охват и читатели49K
Недавно мы опубликовали серию материалов, представляющую собой перевод руководства по Node.js. В первой публикации мы интересовались мнением аудитории о целесообразности перевода этого руководства и говорили, что планируется подготовить его PDF-версию.

image


PDF-версия документа состоит более чем из 120 страниц, содержит оглавление, немного картинок и всё необходимое форматирование. Просто закидывайте файлик в читалку и готово. Или в папочку с литературой. Или… решать вам.

Скачать PDF-версию [ 1.8 Мб ]



Сегодня мы хотим представить вашему вниманию новое руководство того же автора, посвящённое JavaScript.

Вот краткий перечень вопросов, которые оно раскрывает:
  • Общая характеристика языка и его стандартизация
  • Особенности стандартов ES6, ES7, ES8, ES9
  • Оформление кода, руководства по стилю
  • Лексическая структура языка
  • Переменные
  • Типы данных
  • Выражения
  • Логические выражения
  • Прототипное наследование
  • Классы
  • Исключения
  • Функции и замыкания
  • Массивы
  • Циклы
  • События
  • Асинхронное программирование
  • Таймеры
  • Строгий режим
  • Математические вычисления
  • Модули

Мы планируем это руководство перевести, но, прежде чем приняться за работу, хотели бы предложить вам поучаствовать в небольшом опросе
Читать дальше →

Пишем CLI на NodeJS

Время на прочтение4 мин
Охват и читатели9.1K


Добрый вечер всем.


Возникла задача написать свой immersive CLI на node.js. Ранее для этой цели использовал vorpal. В этот раз захотелось обойтись без лишних зависимостей и, помимо этого, рассматривал возможность по-другому принимать аргументы команд.


С vorpal команды писались следующим образом:


setValue -s 1 -v 0

Согласитесь, каждый раз писать -s — не очень удобно.


В конце концов, команда преобразовалась в следующую:


set 1: 0

Каким образом это можно реализовать — под катом

Читать дальше →

Оффлайн брокер на JavaScript

Время на прочтение7 мин
Охват и читатели7.8K
В своем проекте, мне понадобился функционал, который позволил бы не терять внесенные данные, в случае разрыва интернет соединения и я придумал очень простой «Брокер», который позволял не терять данные при потере соединения, а отправлять их когда соединение будет снова восстановлено. Возможно «Брокер» для него не очень хорошее название, но не судите строго. Хочется поделиться, может кому-то станет полезным.
Читать дальше →

Функции высшего порядка в JavaScript: что это такое?

Время на прочтение7 мин
Охват и читатели11K
Представляем вам перевод статьи Sukhjinder Arora, опубликованной на ресурсе Bits and Pieces. Узнайте под катом о функциях высшего порядка в JavaScript и о некоторых других функциях, встроенных в этот язык.


Фото NESA by Makers с сайта Unsplash
Читать дальше →