Обновить
28.56

Node.JS *

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

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

Autodafé

Время на прочтение3 мин
Количество просмотров1.6K
Autodafe — node.js фреймворк для разработки веб приложений

Содержание статьи может описывать неактуальный код. У фреймворка уже давно свой сайт autodafe.ws

Самые вкусные плюшки из коробки:


  • архитектура: MVC + подключаемые модули
  • Mysql ORM (ActiveRecord с поддержкой отношений, асинхронное подобие того, что предлагает Yii framework для PHP )
  • HTTP сервер
  • WebSockets ( обертка для socket.io )
  • удобное перенаправление запросов и человеко понятные УРЛ
  • управление пользователями
    • аутентификация и авторизация, сессии
    • система управления правами ролей пользователей
  • почта
  • логирование в консоль, фс и на почту
  • шаблонизатор

Ложка дегтя:


  • очень малая часть задокументирована
  • задокументированная часть плохо задокументирована
  • плохо задокументированная часть задокументирована только на русском языке
  • тестами покрыт не весь фреймворк


Hello World на Autodafe

Поддержка Node.JS в Windows Azure

Время на прочтение1 мин
Количество просмотров2.8K
В последнее время Microsoft довольно активно поддерживает проект Node.JS. Уже проделана большая работа по портированию Node на асинхронный API ввода/вывода Windows (IOCP) и вот недавно анонсирована поддержка Node.JS в облачном хостинге Microsoft Windows Azure. Доступ к облачным сервисам Azure доступен через SDK опубликованном на GitHub, который также можно установить с помощью npm:

npm install azure

В целом это выглядит как хорошие новости для сообщества Node.JS. Несмотря на большой интерес, в отношении проекта сохраняется некий скепсис как о «несерьезной» технологии не готовой для использования в «настоящих» проектах. Вслед за такими разработчиками многие заказчики также не спешат использовать платформу Node для своих проектов. Так что поддержка со стороны Microsoft может помочь не только с размещением проекта в облаке, но и возможно развеять некоторые страхи для тех кто рассматривает Node.JS как технологию для своего нового проекта.

Запускаем jQuery на движке Node.js вместо браузера

Время на прочтение2 мин
Количество просмотров21K
Библиотека jQuery — это общепризнанное средство манипуляции сразу несколькими форматами данных (XML, HTML, объекты DOM, обыкновенные объекты), да притом работающее посредством удобного (цепного) вызова методов с удобными (краткими) названиями. Поэтому ничуть не удивляют попытки приспособить jQuery не только к одному клиентскому, но также ещё и к серверному джаваскрипту — в частности, к Node.js.

Признаюсь честно, что когда разработчики jQuery превозмогли проблему №7102, то её название («Register jQuery as a CommonJS async module») на какое-то время даже заставило меня обмануться: я сперва подумал было, что и в Node.js (так как модули Node.js и СommonJS имеют немало общего) отныне jQuery станет работать невозбранно. Ан нет, не тут-то было. Пристальное вглядывание в коммит и в запрос на слияние позволяет осознать, что jQuery, в сущности, обрёл возможность регистрироваться только как AMD-модуль и даже проверяет свойства define.amd и define.amd.jQuery перед саморегистрацией.

Собственно говоря, архитектура jQuery «затóчена» под употребление в условиях браузерной DOM: код jQuery полагается на существование объекта window, который служит аргументом главного замыкания, окаймляющего весь код jQuery. Прежде же таких неявных предположений было ещё больше, и только с устранением проблемы №6690 библиотека jQuery перестала полагаться на существование глобальных объектов navigator и location, начав вместо того получать их как свойства объекта window. (Понятно, что такое предположение никак не подходило для Node.js, где глобальные объекты служат свойствами объекта global, а вовсе не window; а равно не подходило и ко многим прочим реализациям CommonJS.)

Потому для запуска jQuery в Node.js применяются готовые реализации браузерной DOM — такие, как пакет jsdom, на основе которого невозбранно работает, например, вот какой код, предлагаемый в качестве примера:

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

Node.JS на Android, если Android порутованный

Время на прочтение1 мин
Количество просмотров8.6K
Оказывается, ещё в начале 2011 года японский исследователь по имени Тосио Мори, действующий под псевдонимом forest1040, выяснил, что возможно запустить Node.js на устройстве с Android, если обладать правами рута. Итоги его наблюдений изложены на нижеследующих тринадцати слайдах:


Для тех, кто не вполне понимает по-японски, переводчик Jed Schmidt создал англоязычную версию инструкций, выложенную во блоге у forest1040. Говоря вкратце, предлагаемая последовательность действий вот какова:

  • Получить права рута на устройстве под Android
     
  • Использовать qemu и собрать Linux для ARM
     
  • Внутри ARM Linux собрать Node.js
     
  • Скопировать собранный Node.js на устройство под Android

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

Выход версии 0.6.4 привел к блокировке домена nodejs.org в Китае

Время на прочтение1 мин
Количество просмотров1.6K
Великий китайский файервол попросту заблокировал доступ к домену nodejs.org из страны. Связано это ни с чем иным, как с вышедшей новой версией node.js под номером 0.6.4. Это может показаться странным, но файервол действительно блокирует все сайты содержащие цифры 64 и 89. Связано это с печальными событиями имевшими место в 1989м году. Тогда на площади Тяньаньмэнь были расстреляны студенты. Правительство пытается любыми, даже такими безумными, способами ограничить доступ современного населения к истории тех событий.
Читать дальше →

и Firebird SQL Server

Время на прочтение6 мин
Количество просмотров13K


     О чем это


Являясь автором модуля подключения к Firebird для NodeJS, я долго откладывал публикацию о нем, считая, что модуль еще достаточно сырой. Кроме того, развитие модуля несколько застопорилось, поскольку весь необходимый мне функционал в нем уже присутствует (однако он еще далек от универсальности).
Время от времени только возникает необходимость исправить выявленную ошибку или подправить что-то для обеспечения совместимости с последней стабильной версией NodeJS. Надо сказать, что модуль не является популярным ввиду направленности NodeJS сообщества на NoSQL решения. А Firebird сообщество, видимо, смотрит на NodeJS с осторожностью, да и не такое уж оно и большое. К тому же довольно часто Firebird используется в связке с Delphi на платформе Windows, так что заинтересовать кого-либо из работающих под Windows специфичным Linux решением тоже тяжело. Однако, недавнее значительное продвижение проекта NodeJS в сторону поддержки Windows дало надежду на привлечение внимания таких людей к проекту. Эта публикация будет посвящена тому, как можно работать с Firebird из NodeJS. Будут даны инструкции по установке для Linux и Windows, примеры типовых сценариев работы. Топик, однако, рассчитан на тех, кто хоть немного знаком с Firebird (необходима рабочая копия сервера БД для экспериментов). Для тех, кто не знаком с Firebird, в конце публикации будут даны ссылки на ресурсы для изучения.

Заинтересовавшимся — добро пожаловать под кат.
Читать дальше →

NodeJS стал самым популярным репозиторием на Github

Время на прочтение1 мин
Количество просмотров1.9K
Фреймворк NodeJS вышел на первое место в списке самых популярных проектов Github по количеству подписчиков (watchers).
  1. node — 11 349 подписчиков
  2. rails — 11 234
  3. bootstrap — 10 924
  4. jquery — 10 479
  5. html5-boilerplate — 8 940
  6. homebrew (пакетный менеджер для OS X) — 6 641
  7. diaspora — 5 898
  8. three20 (библиотека Objective-C для разработки од iPhone) — 5 380
  9. devise (система аутентификации для Rails) — 5 249
  10. Spoon-Knife (пустой репозиторий для обучения новых пользователей github, как делать форки и проч.) — 4 863
Вообще, рейтинг довольно субъективен. Например, на третьем месте Bootstrap, набор стилей и элементов UI от разработчиков Twitter, который появился на свет всего несколько месяцев назад. В первые недели после выхода он даже побывал в лидерах этого списка.

Как цифры с Github соотносятся с реальностью, можно судить по количеству фолловеров к тегам на StackOverflow: у NodeJS их 2200, у jQuery — 19 500, C# — 22 200, у PHP — 18 000, и даже у фреймворка ASP.NET 8300 фолловеров.

Выход Node.JS версии 0.6.3 и две ошибки, найденные при работе с кодировками дочерних процессов в консоли Windows XP

Время на прочтение4 мин
Количество просмотров4K
В официальном блоге Node.JS вчера (25 ноября) объявлено о выходе новой версии Node, под номером 0.6.3. Изменения не очень значительны: исправлен десяток ошибок да недочётов.

Я счёл это небезынтересным подарком ко дню рождения (по приятному совпадению, 25 ноября мне исполнилось 33 года). Однако в тот же день, задавшись вопросом «Как принять вывод Windows-команды, вызванной из node.js?», я начал в Windows XP серию экспериментов, конечным итогом которой стало обнаружение сразу двух ошибок Node при работе с кодировками под Windows.

Во-первых, при вызове команды методом require('child_process').exec(…) Node ожидает от неё вывода в кодировке UTF-8, тогда как в русифицированной системе Windows команды (например, dir) выводят текст в кодировке CP866.

Во-вторых, если дочерний консольный процесс изменит кодировку консоли, то будет воздействовать и на кодировку консоли родительского процесса Node (в частности, на вывод методом console.log) — получается, что консоль у них одна и та же, или что-то в этом же дýхе.

А теперь немного подробностей.

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

Шпаргалка по пакетному менеджеру NPM

Время на прочтение5 мин
Количество просмотров423K

npm — это пакетный менеджер node.js. С его помощью можно управлять модулями и зависимостями.
Небольшая шпаргалка всех моих любимых команд npm:

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

Node.js на Windows (с тестами производительности)

Время на прочтение11 мин
Количество просмотров49K


В этой статье мы рассмотрим вопросы наиболее важные для начинающих веб программистов и тех кто задумывается об изучении Node.js, а именно:
  • как установить рабочее окружение Node.js на своем компьютере;
  • как писать код;
  • как отлаживаться;
  • как развернуть то, что получилось на удаленном сервере.
А тесты производительности в конце статьи возможно дадут ответ на вопрос зачем собственно вам может понадобится изучать Node.js.
Читать дальше →

Пишем онлайн игру часть 2 или работа над ошибками

Время на прочтение7 мин
Количество просмотров7.3K

Приветствую %habrname%!




Во вчерашней статье для меня в общем-то было ожидаемо, что большинству не будет интереса к nodejs, многие посмотрят только демо. Но к сожалению я не учёл, что и оценивать в статье будут именно игру! Хоть мне было и обидно потратив столько времени на написание статьи (а что самое главное игра писалась именно для статьи, а не наоборот), я сегодня решил написать продолжение.

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

Пишем онлайн игру на NodeJS, Express и Socket.IO

Время на прочтение18 мин
Количество просмотров44K

Привет %habraname%!





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


Мало кто сегодня может сказать что не знает о NodeJS, последнее время о нём много говорят и пишут.
Я свой путь ознакомления с NodeJS начал полгода назад, тогда для меня это была просто интересное и новое, я и подумать не мог что уже через полгода это станет моим основным инструментом для разработки.

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

Но сейчас я чувствую в себе силы чтобы уже написать полноценный обучающий и не унылый материал от новичка до реального работающего приложения. Это будет не просто приложение, а онлайн игра с использованием самых популярных инструментов Express и Socket.IO, да-да, мультиплеер, который сможет сделать любой средне-статистический js разработчик.

О том, что такое Express и Socket.IO уже писали много где, поэтому описывать ещё раз я не буду, уделив больше внимания процессу разработки.

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

И так, решено! Начинаю делать крестики-нолики.
Читать дальше →

Как пропущенный var сорвал наш запуск

Время на прочтение4 мин
Количество просмотров2.6K
Перевод этой заметки никак не нацелен оттолкнуть читателя от использования Node.js, и на старуху бывает проруха, а лишь призывает быть внимательными, и, возможно, подскажет решение тем, кто вдруг столкнётся с подобным поведением своего приложения. Лексика автора оставлена без особых изменений и цензуры.

Кратко сказка сказывается, да долго дело делается, MelonCard сегодня был представлен на TechCrunch вместе с другими компаниями, как вдруг всё внезапно сломалось. Каждая. маленькая. мелочь. Мы только что обновили сайт, чтобы он выглядел и ощущался более отзывчивым, используя long-polling NodeJS, с крутейшим динамическим фронтендом на jQuery Templates и KnockoutJS. Приложили все усилия и провели ручное и юнит-тестирование с помощью Vows. Все системы готовы, полный вперёд и всё такое? Не тут-то было.
Читать дальше →

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

Релиз node.js 0.6.0

Время на прочтение3 мин
Количество просмотров1.7K
Вышла новая стабильная версия node.js — 0.6.0 .

Скачать (tar.gz, linux) Скачать (exe, windows)
Сайт
Документация

Поскольку это major-release, в API были внесены изменения без обратной совместимости. Если в вашем приложении/модуле перестало что-то работать — эта страница wiki поможет вам в миграции:
https://github.com/joyent/node/wiki/API-changes-between-v0.4-and-v0.6

Основные изменения, по сравнению с веткой 0.5.x:
Читать дальше →

Hubot: универсальный бот на CoffeeScript от разработчиков Github

Время на прочтение1 мин
Количество просмотров19K


Разработчики Github на работе занимаются не только основным делом, но и посторонними проектами. Один из таких проектов — бот Hubot, программа для автоматизации различных действий в онлайне (изначально чат-бот).

Уникальными особенностями Hubot является поддержка любых Javascript-библиотек через менеджер пакетов npm и скрипты для бота, которые выкладываются на github'е во всеобщее пользование (см. каталог скриптов на CoffeeScript).
Читать дальше →

Использование пакетного менеджера Node.js на Windows

Время на прочтение1 мин
Количество просмотров11K
Мне долгое время хотелось полноценно поиграться с нодом, но так сложилась жизнь, что я пользуюсь Windows как на работе, так и дома.

Только недавно портировали, собственно, сам нод на Windows (и не без помощи Microsoft, за что им спасибо). Это хорошо, но как же быть с пакетным менеджером npm который используется чуть менее чем во всех туториалах?

Продолжительный поиск привел к нескольким статьям, в которых в общих чертах говорилось об установке чего-то, непонятно чего и непонятно как (cygwin и т. п.)

Долгое время я не мог вменяемо завести npm, но в какой то момент подвернулась замечательная статья некоего Pablo M. Cibraro. В которой простым языком описано что и как делать.

В общем итоге нам предлагают поставить Python, затем скачать утилиту, за авторством Japj. И запуска ее точно так же, как и npm — python ryppi install <имя_модуля>

Кроме того, что бы использовать express вам понадобится его модифицированная версия (потому что в оригинальной используются специфические для *nix команды)

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

Понимание require() в Node.js

Время на прочтение3 мин
Количество просмотров60K

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

В этой статье будет использоваться Node.js v0.5.8-pre. Поехали!

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

Удаленный вызов процедур в Node.js с использованием Now.js

Время на прочтение4 мин
Количество просмотров5.6K

Введение


Для Node.js есть отличная библиотека Socket.io для кроссбраузерного использования вебсокетов.
Но для двухстороннего взаимодействия сервера и клиента приходится использовать модель сообщений.
С помощью библиотеки Now.js есть возможность прозрачного вызова функций клиента со стороны сервера и наоборот.
Читать дальше →

Node.js — раковая опухоль

Время на прочтение5 мин
Количество просмотров136K
Если и есть что-то, что веб-разработчики любят, так это знать что-то, что лучше традиционного. Но традиционное является таковым по одной причине: это дерьмо работает. Что-то давно беспокоило меня во всей этой шумихе вокруг Node.js, но у меня не было времени разобраться, что именно, пока я не прочитал полный боли в жопе пост от Райана Дала, создателя Node.js. Я бы забыл его, как любое очередное нытьё какого-то осла о том, что Unix слишком сложен. Но, как полицейскому, который, жопой чуя, что что-то не так с этой семьёй в микроавтобусе, останавливает его и находит пятьдесят килограммов героина, мне показалось, что что-то не так с этой слезливой историей, и возможно, просто возможно, он понятия не имеет, что делает, и много лет программирует, никем не контролируемый.

Поскольку вы читаете это, вы, возможно, уже поняли, что моя догадка подтвердилась.

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