Рубрика «node.js» - 78

Уже ни раз на хабре писали о том, как работают новые генераторы и я даже не буду первым, кто напишет о их возможности приостанавливать своё выполнение инструкцией yield.

После прочтения статьи «Генераторы в node.js (новый способ борьбы с лапшой)» меня не покидала мысль о том, что можно обойтись без лапши-callBack'ов, но я никак не мог смириться с тем, что для каждой асинхронной функции, которую мы хотим вызвать, нужно писать функцию-обёртку.

И тут родилась идея! Очень простая, а суть её в том, что внутри генератора имеется ссылка на функцию n, которую мы передаём асинхронным функциям как callBack, приостанавливаем генератор при помощи yield, а затем наша функция n продолжает выполнение генератора, передавая в него массив, сформированный из аргументов, с которыми она была вызвана.

Заинтересованных прошу под кат.
Читать полностью »

Привет! Пару месяцев назад я захотел провести тестирование производительности некоторых сетевых фреймворков, c целью понять насколько большая разбежка между ними. Надо ли использовать Node.js там, где хотелось бы Python с Gevent или нужен Ruby с его EventMachine.

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

Особенности использования Sails для начинающих (Часть 2)

Синопсис

В этой статье собраны полезные для новичков советы по использованию различных возможностей MVC фреймворка SailsJS. Эти советы могут быть полезны новичкам тем, что открывают некоторые «секреты» которые могут им быть незнакомы — из-за этого многие пишут множество костылей и велосипедов, это может заставить погаснуть их энтузиазм в изучении этого полезного инструмента только потому что их основные силы будут направлены на обычную рутину которую можно запросто обойти с помощью простых и удобных методов. Интересно?

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

Особенности использования SailsJS для начинающих (Часть 1)

Синопсис

Эта статья содержит полезные для новичков методы и способы разработки на SailsJS, которые могут быть неизвестны или непонятны тем кто только ступил на путь разработки в этом удобном и многофункциональном фреймворке. Это может быть все — начиная от обычных команд, генераторов или сервисов, и заканчивая встроенными методами запросов. Здесь собраны полезные мелочи платформы которые смогут защитить вас от написания костылей или велосипедов. Заинтересовало?
Читать полностью »

Синопсис

Ранее мы изучили написание основы для нашего блога, при написании основы мы ознакомились с организацией статики, составлением модели и написанием кода контроллера. Узнали как можно работать с конфигурациями путей (routes.js), и как работать с представлениями в SailsJS. Во второй части о написании простого блога на SailsJS, мы рассмотрим следующие пункты: Пользователи: создание. Сессии: создание (вход), разрыв (выход). Написание Админ Панели, и работа с политикой и ограничениями доступа.
Читать полностью »

Начинаем работать с browserify

Введение

Решения, написанные на JavaScript становятся сложнее из года в год. Это, несомненно, обусловлено разрастанием такого прекрасного зверя, как веб. Многие из нас сейчас работают с JavaScript модулями — независимыми функциональными компонентами, которые собираются вместе и работают как единое целое. Так же такой подход позволяет нам реализовать взаимозаменяемость компонентов, не прикончив попутно код. Многие из нас использовали для этого паттерн AMD и его реализацию в RequireJS.
Читать полностью »

Включение Node.js в ваше решение для Microsoft Azure
В последнее время о Node.js много пишут в прессе, высоко превознося за модель асинхронного ввода-вывода, которая освобождает основной поток от ожидания ответов на запросы ввода-вывода и позволяет ему заниматься в этот период другой работой. Главная концепция Node.js состоит в том, что ввод-вывод — операция дорогостоящая, и поэтому предпринята попытка уменьшить эти издержки за счет принудительного введения модели асинхронного ввода-вывода. Я размышлял о том, как эта концепция может быть включена в уже существующую инфраструктуру. Если вы начинаете с нуля, сравнительно легко расписать технологические варианты и сделать выбор. Однако, если цель заключается в обновлении технологии для одной из частей решения, весь фокус в том, чтобы выбрать нечто современное, у которого есть будущее, которое не повлечет за собой массу дополнительных издержек и которое удастся без особых проблем встроить в существующее решение.

Именно это я и собираюсь продемонстрировать в данной статье. Я возьму существующее решение, которое позволяет просматривать документы в хранилище, но требует сигнатуры общего доступа (shared access signature) для их скачивания. В это решение я добавлю простой UI, использующий Node.js. Чтобы упростить эту реализацию, я задействую преимущества некоторых часто применяемых для Node.js инфраструктур. Таким образом, решение будет включать:

  • Node.js — базовый механизм;
  • Express — инфраструктура в стиле Model-View-Controller (MVC);
  • Jade — механизм рендеринга и поддержки шаблонов.

Совместно эти три средства предоставят богатую инфраструктуру для построения UI, во многом аналогичную комбинации ASP.NET MVC 3 и Razor.
Читать полностью »

Файловых менеджеров много, но есть один, о котором, думаю, будет многим интересно узнать. Ведь он двухпанельный, работает в браузере, оснащён редактором (с подсветкой синтаксиса) и консолью, состоит из клиента и сервера, а написан на JavaScript/Node.js.

Двухпанельный веб файл менеджер Cloud Commander

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

Эта статья является продолжением "Итерируем всё вместе с Collection" и здесь я расскажу о встроенном механизме Collection — фильтрах.

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

В современном JavaScript существует целый пласт различных видов итерируемых структур данных:

  • Array
  • TypedArrays
  • Object
  • Map
  • Set
  • String

А также появились генераторы и универсальный протокол @@iterator, который позволят итерировать что угодно и как угодно. И в тоже время для некоторых типов данных (в основном для массивов) определены различные методы для удобной функциональной работы и простого итерирования, например, forEach, map или reduce, и всё было бы хорошо, однако:

  • Большинство методов определены только для массивов;
  • Определяемое API слишком примитивно и не покрывает целый ряд задач;
  • До сих пор скорость выполнения нативных итераторов далека от идеала и существенно уступает реализации на циклах.

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


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