Обновить
64K+

Node.JS *

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

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

Последовательное выполнение задач в Gulp JS

Время на прочтение2 мин
Охват и читатели20K
Gulp JS — это сборщик проектов и таск-менеджер для фронтенд и веб-разработки, который является достойной альтернативой для популярного Grunt JS. Одной из нескольких вещей, которыми Gulp отличается от Grunt является то, что по умолчанию все задачи запускаются асинхронно. В целом, можно сказать, что все задачи выполняются одновременно.

Недавно, изучая Gulp, я столкнулся с необходимостью синхронного запуска нескольких задач… синхронного. В документации к Gulp упоминается данная проблема, но мне пришлось немного повозиться перед тем, как я с этим разобрался.
Читать дальше →

Новости из мира Node: Node 0.11.14, svgexport, node-webkitgtk, Nightmare, Prototypes, node-libpq и node-pg-native

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

Node 0.11.14


libuv
Увидел свет Node 0.11.14, несущий в себе обновления для uv, http_parser, npm, openssl, и v8.
Далее

Unit тестирование в js. YATS — поделка для написания юнит тестов

Время на прочтение6 мин
Охват и читатели6.7K
Добрый день!

Начать свою статью я хочу с небольшого вступления. Вы помните, какими были сайты лет 10 назад? а пять? Если сайты и содержали какую-то js логику, то она была проста и наивна. На сегодняшний день каждый второй — это не просто статические данные, это большое динамическое содержимое, с «кучей» js логики.

За 5-8 лет JavaScript перестал быть языком для анимирования снежинок под новый год и преобразовался в довольно популярный и востребованный язык программирования, с большим коммьюнити.

Любой код можно сделать лучше, если покрыть его тестами. Код, покрытый тестами проще рефакторить, при написании tests first можно писать удобный расширяемый код.

В таких задачах хорошо помогает UNIT-тестирование.

На сегодняшний день существует множество фреймворков для unit тестирования js кода. В данной статье я бы хотел описать свое видение небольшой библиотеки для тестирования js кода.
Читать дальше →

Node.js в действии

Время на прочтение3 мин
Охват и читатели27K
Предлагаем начать с Node.js
image

Прототип: Node.js in Action
Publisher:: Manning Publications Co

Основное предназначение книги — научить читателя создавать и развертывать Node-приложения (веб-приложения). Важную часть книги занимает рассмотрение среды разработки веб-приложений Express и среды разработки приложений промежуточного уровня Connect, которые широко применяются при создании приложений и поддерживаются сообществом разработчиков. Вы также научитесь разрабатывать автоматизированные тесты и освоите принципы развертывания приложений. Книга предназначена для опытных разработчиков веб-приложений, которые занимаются созданием чувствительных и масштабируемых Node-приложений.

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

Когда программисту нечем заняться, он пишет Gopher-сервер

Время на прочтение4 мин
Охват и читатели13K
Надеюсь, автор предыдущего археологического поста не выпустил на Хабр джинна Недели Gopher'а. Я тоже этого не хочу делать, но раз уж тема была поднята, то осмелюсь взять часть греха на свою душу.

Примером имплементации Gopher-сервера в 140 строк на JS.

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

Единственным, пожалуй, в текущем историческом контексте достоинством Gopher'а является его поразительная простота. Смотрите, RFC1436 — просто коротюнечка по меркам IETF. Статья в Википедии — ещё короче. И этого вполне достаточно.
Читать дальше →

Новости из мира Node: npm 2.0, nvm для Windows, xtpl

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

npm 2.0



npm 2.0 увидел свет, и объявление об его выходе содержит множество деталей об исправлениях и о развитии процесса выпуска проекта. Одно из главных изменений касается run-script, данная команда теперь способна принимать аргументы:

В npm@2.0.0, Ben изменил npm run-script таким образом, что-бы дать вам возможность передавать аргументы в скрипт. Это критическое изменение. Это так просто. Думайте о npm 2 как о шаге на пути прямо к npm с semver. (Дальше больше. npm 3 выйдет еще до конца года.)

Подробности

[Подборка] Melchior.js, ng-admin, Hello.js, ineed

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

Melchior.js


Melchior.js (GitHub: voronianski/melchior.js, Лицензия: MIT, npm: melchiorjs) от Dmitri Voronianski представляет собой реализацию цепочного определения модулей(CMD), концепцию, введенную John Wu.
Идея, кроющаяся за цепочными определениями модулей разрешает некоторые неприятные моменты AMD, такие как объемные объявления зависимостей, а так же обеспечивает простоту и читабельность с использованием визуально-дружелюбного и ясного синтаксиса.

Так же как CommonJS больше подходит для вне-браузерной среды, цепочные определения модулей с их требованиями, идеально вписываются во внутри-браузерные сценарии использования.

Далее

Знакомство с Koa или coroutine в nodejs

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

Предисловие


Меня уже очень давно привлекает javascript в качестве единого языка для веб-разработки, но до недавнего времени все мои изыскания оканчивались чтением документации nodejs и статей о том, что это callback`овый ад, что разработка на нем приносит лишь боль и страдания. Пока не обнаружил, что в harmony появился оператор yield, после чего я наткнулся на koa, и пошло поехало.
Читать дальше →

Новости DerbyJS 09.2014

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


В этой статье описаны последние события, связанные с Derby. Так же поделюсь мыслями и полезными ссылками.
Ну что там интересного?

Новости из мира Node: promise.io, copromise, Apper

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

promise.io


Promise.io представляет собой модуль для удаленного вызова процедур(RPC), использующий «обещания» (promises). С его помощью можно создать вот такой сервер:

var server = new PromiseIO({
  someFunc: function(input) {
    return 'I got: ' + input;
  }
});
server.listen(3000);
Далее

Новости из мира Node: DataCollection.js, Supererror, Readability

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

DataCollection.js


DataCollection.js* — представляет собой библиотеку для выполнения запросов к источнику данных. Вы можете использовать ее как в браузере так и на стороне Node. Пример в документации использует массив объектов, над которым выполняются операции по отбору(фильтрации) используя представление ключ/значение, а так же используются некоторые около sql-ные операторы, такие как max и distinct.
Далее

Визуализация npm

Время на прочтение1 мин
Охват и читатели9.5K
Привет, друзья!

Я просто хотел поделиться с вами своей визуализацией зависимостей пакетов на npm'e. Выглядит это так:

npm visualization

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

Все исходники доступны здесь: github.com/anvaka/npmgraph.an
Рабочая версия сайта здесь: npm.anvaka.com/#

Увы, Internet Explorer пока не поддерживается, но планирую отловить своих насекомых и починить его в ближайшем будущем.

Надеюсь, кому-нибудь пригодится. Буду рад любым пожеланиям!

P.S: Забавы ради я также сделал визуализацию в 3D, но пока от нее мало толку (кроме забавы).

Scrawl — скриншотер сайтов и безопасность веб-интерфейсов SIP-устройств

Время на прочтение2 мин
Охват и читатели3.8K
Все началось с того, что некоторые абоненты, подключающиеся по протоколу SIP к нашей корпоративной АТС без использования VPN, не соблюдали основы безопасности и оставляли на внешнем IP-адресе доступ к веб-интерфейсу или роутера, или IP-шлюза со стандартным логином-паролем. Что дает потенциальным злоумышленникам возможность получить настройки, прикинуться нашим абонентом и сделать множество звонков по междугородним направлениям.

Сначала просто CURL'ом подергал IP-адреса абонентов (выявилось, что некоторые аппараты при простом HTTP POST запросе ребутятся), а затем захотелось как-нибудь с изюминкой просканировать да красоту получить. В общем, получился Scrawl — скриншотер сайтов (сайт проекта, репозиторий).

На модной волне headless браузеров захотелось попробовать PhantomJS, более удобный интерфейс к которому дает CasperJS, а затем стало желательно использовать совместно с Node.JS, поэтому стал использовать SpookyJS.

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

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

[Перевод] Новости из мира Node: Tint, Redbird

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

Tint


image

Сегодня можно констатировать взлет такой под-области node-ориентированных разработок как написание десктопных приложений на node-webkit или похожих фреймворках. Идея такого подхода выглядит достаточно просто: запаковываем среду исполнения Node вместе с небольшой программой, которая предназначена для запуска вашего Node приложения как если бы оно было родным, десктопным.

Кому интересно, прошу в подкат

Web UI, WebSocket и проблема самоподписанных сертификатов

Время на прочтение6 мин
Охват и читатели30K
Доброго времени суток всем!

В этой заметке я постараюсь рассмотреть проблематику зашифрованного соединения с Web-сервером (HTTPS) и такого же соединения с Comet-сервером с использованием WebSocket (WSS) при использовании самоподписанных сертификатов, а так же варианты для решения данной проблемы.
Читать дальше →

Основы работы с модулями в Node.js

Время на прочтение5 мин
Охват и читатели114K
Любой проект посложнее «Hello World» состоит из некоторого количества файлов, по которым разносят код. Это дает возможность структурировать проект, вынести независимые части, которые можно будет использовать в других проектах и вообще сделать код нагляднее.

Так вот, в Node.js каждый такой файл и представляет собой модуль, который можно подключить.
Подключение происходит с помощью вызова функции require, которой нужно передать путь к файлу.

    var authModule = require('./auth');

Данный код подключает модуль авторизации и делает его доступным через переменную authModule.

В зависимости от того, какой параметр передан в функцию require, будет отличатся алгоритм подключения модуля. Так что давайте посмотрим на принципы подключения модулей в Node.js. Отмечу, что вся эта информация доступна в документации.

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

    var http = require('http');
    var cluster = reqiure('cluster');

Нужно отметить, что встроенные модули имеют приоритет над всеми остальными, если в функцию require передано их название. Так к примеру, require('http') всегда вернет встроенный модуль, даже если будет сторонний модуль с таким названием или файл с таким именем. Список всех встроенных модулей и документацию по ним можно найти на сайте. Исходники этих модулей можно посмотреть в репозитории проекта.
Читать дальше →

Настоящее модульное тестирование в AngularJS

Время на прочтение12 мин
Охват и читатели43K
AngularJS молод и горяч, когда дело доходит до современной веб разработки. Его уникальный подход к компиляции HTML и двусторонней привязки данных делает его эффективным инструментом для создания клиентских веб приложений. Когда я узнал что Quick Left (студия в которой работает автор. прим. пер.) будет использовать его для создания приложения для одного из наших клиентов, я был взволнован и постарался узнать о angular столько сколько мог. Я обошел весь интернет, каждый урок и руководство, которые смог найти в Google. Они были реально полезны в понимании работы директив, шаблонов, компиляции и цикла обработки событий (digest), но когда дело дошло до тестирования, я обнаружил что эта тема была просто упущена.

Я обучался подходу TDD (Разработка через тестирование) и я чувствую себя не в своей тарелке без подхода «Красный-Зеленый-Рефакторинг». Так как мы все еще разбирались что к чему в тестировании в Angular, команде иногда приходилось полагаться на подход «тестирование-после». Это начало нервировать меня, поэтому я решил сосредоточится на тестировании. Я потратил на это недели, и в скором времени покрытие тестами поднялось с 40% до 86% (Кстати, если вы еще этого не делали, можете попробовать Istabul для проверки покрытия кода в вашем JS приложении).

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

yandex-speech — wrapper к речевым технологиям Яндекса

Время на прочтение1 мин
Охват и читатели15K
Ознакомившись с обзором движков для распознавания речи, заметил там API от Яндекса. И на выходных написал небольшую обертку для Node.js для распознавания речи с целью поиска мата в своих телефонных разговорах. По мотивам топика на Хабре.

Список нецензурных слов выкладывать не буду, а сам npm устанавливается командой.
npm install yandex-speech


Исходники и примеры использования:
github: www.github.com/antirek/yandex-speech

Немного деталей:
Читать дальше →

EtherCalc: электронные таблицы на Node.js

Время на прочтение1 мин
Охват и читатели14K
EtherCalc — отличный инструмент для редактирования электронных таблиц в вебе, в том числе для совместной работы.



Просто перетяните готовый документ CSV или Excel XML (.xlsx) на страницу — и она сразу импортируется в EtherCalc. Или можно создать новый документ одним нажатием кнопки.

EtherCalc кажется более удобным и функциональным, чем «Google Таблицы» и другие подобные программы. В комментариях репозитории на Github автор объясняет, что EtherCalc — это порт на Node.js приложения SocialCalc. Программу можно установить локально для работы в офлайне.

Исходный код опубликован под свободной лицензией.

NPM 2.0.0 & передача аргументов в run-script

Время на прочтение1 мин
Охват и читатели5.6K
22 июля случилось небольшое, но знаментаельное событие: был принят пулл-реквест, что добавлял поддержку передачи произвольных аргументов в ваши npm script'ы. Уже появился альфа-релиз npm весрии 2.0.0, что включает эту возможность.
Читать дальше →