Как стать автором
Обновить

Комментарии 18

Работает ли Node на Windows?

Работает. Поправьте, пожалуйста, чтобы не вводить в заблуждения людей :)
Работает конечно :)
Пять минут назад cmd.exe вполне нормально скушал npm install -g phonegap

А… вон оно чего, оригинал то 29/4/10
в Node все работает параллельно, за исключением твоего кода.


Может сами сначала поймем node.js перед тем как кого-то учить?

Ах, да. Heroku только что анансировала (эксперементальную) поддержку хостинга Node проектов.

Posted 3 years ago,
Извините, но этой статье 3 года, да. Но мне показалось, людям она будет интересна в общем случае.
Так об этом же и надо предупредить в самом начале статьи: внимание, читатели, это статья старая, но интересная. Но я бы лично не стал бы переводить для такой сильно меняющейся технологии такую старую статью. В худшем случае, если альтернатив нет, можно сделать свою компиляцию мнений по нескольким статьям.
Простите, пожалуйста. Как будет доступ к нормальному интернету — обязательно укажу.
в Node все работает параллельно, за исключением твоего кода.

Может сами сначала поймем node.js перед тем как кого-то учить?

А в чем проблема? Эта фраза как раз очень хорошо описывает, как работает node.
асинхронно != параллельно
В данном-то случае параллельно. То есть после вызова асинхронного API код Node продолжает выполняться дальше, отвлекаясь только на обработку приходящих событий об окончании операций ввода-вывода, до этого параллельно коду Node выполнявшихся.
НЛО прилетело и опубликовало эту надпись здесь
Отчасти из-за отсутствия нативного бинарного типа данных
Вообще-то в джаваскрипте таких типов полным-полно (глобальные типы Float32Array, Float64Array, Int16Array, Int32Array, Int8Array, Uint16Array, Uint32Array, Uint8Array), просто Node.js совершает операции ввода-вывода не с ними, а со своими буферами (считать ли и этот двоичный тип «нативным» — решайте сами).

Проблема этого различия решается посредством jParser, например.
НЛО прилетело и опубликовало эту надпись здесь
Обладателям отрицательной кармы на Хабрахабре запрещено употреблять язык HTML в комментариях.

Теги автоматически выкусываются поэтому.
Хоть и не очень много программировал на node.js, но он мне очень нравится. Для продакшена делал только конвертер синхронных запросов в асинхронную систему. Сервис на node.js держал входящие соединения, пока с запросами производилась сложная асинхронная обработка, и в асинхронном-же режиме отдавалась конвертеру результат, который возвращался в исходный запрос. Простота реализации такого на node.js просто зашкаливает. На данный момент, хоть я на нем и не пишу, но он в тройке моих любимых языков. :)
Могу ли я получить доступ к DOM в Node?
За годы, прошедшие с публикации первоисточника, ответ изменился на положительный.

И здесь можно иметь в виду не только модуль jsdom, но и, например, модуль cheerio, название которого порадует поклонников аниме «Katanagatari» (а ряд отличий от jsdom в лучшую сторону порадует и остальных).
Да простят меня фанаты, но мне больно смотрнеть на устройство модульной системы.
Это самое ужасное что мне доводилось видеть.

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

Такой стандартный функционал как readln (gets) и то отсутствует из коробки, реализован несколькими модулями, большинство из которых вообще не пригодны.

Проект у меня вызывает двоякие чувство откровенно говоря… И не приятных будет побольше.
В итоге у нас один и тот же модуль может встречаться в проекте несколько раз только потому, что каждый модуль, который его захочет — поставит свою копию.
Это-то как раз и есть одно из величайших достоинств системы модулей Node.

Во-первых, оно позволяет исключить проблемы в таких обстоятельствах, когда модуль A зависит от модулей B и C, каждый из которых хочет свою версию модуля D, из-за чего никак не понятно, какую версию модуля D ставить им. (Эти обстоятельства могут возникнуть не только на этапе установки B и C, но и после очередного обновления их.) Когда каждый модуль получает все свои необходимые модули в своих подкаталогах, конфликты всецело исключены.

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

После чего Роджерс (Mikeal Rogers) слегка рехнулся от счастья и начал проповедовать вон там (и есть перевод на Хабрахабре), что все эти подкаталоги неплохо бы ещё и в репозиторий отправлять дословно — чтобы, значит, гарантия была, что из репозитория извлекается гарантированно работоспособная версия приложения со всеми необходимыми ему модулями точно в той версии, которая проверена была разработчиком.

Но это он сильно хватил лишнего. Сейчас принято полагаться на то, что npm хранит все необходимые версии модулей, так что достаточно сказать, например, npm install step@0.0.4 для того, чтобы получить в точности ту же самую ноль-ноль-четвёртую версию модуля step и на рабочей машине, если именно эта версия у разработчика на машине была проверена и признана приемлемою.
На самом деле все это связано с другой, не менее большой болячкой nodejs, а именно абсолютная нестабильность api, ни самого nodejs, ни каких либо модулей. Люди не могу гарантировать работоспособность чего-бы то ни было при минорных обновлениях версий.

Из всех возможных вариантов решения данной проблемы был выбран наиболее «в лоб».

Ну вот не лежит у меня душа к такой идеологии, ничего не могу с этим поделать :(
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации