Comments 48
Легко читаемо. Спасибо за перевод.
+4
Очень удачная метафора про царя. Браво.
+4
«Могу ли я получить доступ к DOM в Node?»
Отличный вопрос! Нет, DOM определён в браузере отдельно от движка Javascript (V8). Тем не менее, есть люди, работает над реализацией DOM в качестве модуля Node, что может открыть очень интересные возможности, такие как тестирование клиентского кода с помощью Node.
Несколько недель назад я экспериментировал с этим — получилось очень интересно, но скорость выполнения операций c DOM на порядок ниже скорости их выполнения в браузере, из-за чего пришлось переписать систему на ruby(используя гемы, работающие на нативных либах).
0
Было бы интересно узнать, какую реализацию вы пробовали.
Уверен, появятся и нативные модули для DOM.
Уверен, появятся и нативные модули для DOM.
0
Моей первой статьей на хабре как раз было использование node.js как веб-майнера, в которой я использовал одну из реализаций «прощающего» html-парсера, превращающего текст в dom-дерево — априкот. Но сам априкот использует jsdom.
Ссылка на статью — habrahabr.ru/blogs/personal/102840/
Тогда еще не хватало кармы перенести в блок «Javascript». Может кому полезно будет :)
Ссылка на статью — habrahabr.ru/blogs/personal/102840/
Тогда еще не хватало кармы перенести в блок «Javascript». Может кому полезно будет :)
+1
Не вот так? Вообще уже есть jsdom, на нём работает jQuery. Т.е. можно сделать робота который будет обходить страницы и извлекать данные, например. Правда для тестирования интерфейсов имхо пока возможностей маловато.
0
> Нет. Если вы используете Windows, вам нужна виртуальная машина (я рекомендую VirtualBox) с Linux.
Еще можно скомпилировать в Cygwin.
Еще можно скомпилировать в Cygwin.
+1
Все давно скомпилировано и работает. Вопрос только в автоматическом билде под винды каждой новой версии, т.к. разработчики под виндоус не привыкли замарачиваться с компилированием средств разработки после каждого обновления.
0
Про Socket.IO не рассказали
+1
Все претензии к Феликсу :-)
P.S. А тем, кто хочет почитать про Socket.IO на русском, могу посоветовать kuroikaze85.wordpress.com/2010/06/15/socket-io-node-js-game-making/.
P.S. А тем, кто хочет почитать про Socket.IO на русском, могу посоветовать kuroikaze85.wordpress.com/2010/06/15/socket-io-node-js-game-making/.
+1
Отличная штука с неприятной схемой разработки. Посмотрите в гитхабе — за все время ни одного стороннего коммита они не приняли, при наличии порядка 40 веток от сторонних разработчиков с баг-фиксами. Такое чувство, что стараются сохранить копирайт для каких-то целей, мне непонятных. В худшем случае — для смены лицензии.
+2
«Работает ли Node на Windows?»
Да, работает же.
Сделать node.exe дело пяти минут, при наличии быстрого интернета (качать git+python иногда долго), и настроить nginx+apache локально еще 20 минут.
+1
Дополню по поводу того, где узнать о нём
прекрасный источник: kuroikaze85.wordpress.com от одноименного хабрапользователя, + nodejs.ru, аналог хабры вокруг темы node.js
прекрасный источник: kuroikaze85.wordpress.com от одноименного хабрапользователя, + nodejs.ru, аналог хабры вокруг темы node.js
+1
Не находит:
Checking for openssl: not found
Checking for function SSL_library_init: not found
Checking for header openssl/crypto.h: not found
Checking for header port.h: not found
Checking for header sys/event.h: not found
Checking for function kqueue: not found
OS Kubuntu
Checking for openssl: not found
Checking for function SSL_library_init: not found
Checking for header openssl/crypto.h: not found
Checking for header port.h: not found
Checking for header sys/event.h: not found
Checking for function kqueue: not found
OS Kubuntu
0
Должно помочь:
$> sudo apt-get install openssl libssl-dev
$> sudo apt-get install openssl libssl-dev
0
Однако это не обязательно, только если вам нужна поддержка SSL и шифрования.
Остальные проверки же совсем не обязательны. Node.js собирается на многих платформах и использует нативные средства для организации event-loop. На BSD — kqueue, на Linux epoll/select. У вас Linux и при сборке будет использоваться epoll, судя по всему.
Остальные проверки же совсем не обязательны. Node.js собирается на многих платформах и использует нативные средства для организации event-loop. На BSD — kqueue, на Linux epoll/select. У вас Linux и при сборке будет использоваться epoll, судя по всему.
0
Поставил плюс за статью из-за ссылки на Aves engine Очень круто
+1
Не паралельно, а асинхронно. См libevent. Тру параллельность будет только в случае нескольких воркеров и ядер.
+1
Меня очень порадовал клиент для Redis redis-node-client, который поддерживает redis 2.0 с pub/sub-ом. Очень пригодилось, когда делали Comet сервер с большим колличеством подписок
+2
Почему-то по упоминаниям (в основном в комментах) на хабре был уверен, что node.js — это веб-сервер или он «превращается» в него путем запуска команды «node.js mywebserver.js», после чего начинает слушать 80-й порт и обрабатывать HTTP запросы, как это может делать, скажем, скрипт на python?
0
А как в ноде сейчас с отладкой обстоят? Когда я ее последний раз смотрел, там было что-то вроде «ну… э… этож йаваскрипт. Отлаживайтесь print'ами» :(
+1
Есть туториалы по отладке nodejs в eclipse
+1
Можно отлаживать в Eclipse, как уже сказали, и есть пошаговый дебагер для командной строки. Хуже всего тем, кто бинарные аддоны пишет, вот тогда сложно :-)
+1
Сами понимаете, пошаговый отладчк для более-мене сложной отладки это инкарнация пушного зверя. А не подскажете, где туториалы по отладке в eclipse залегают?
0
В вики описано, как подключить: github.com/ry/node/wiki/Using-Eclipse-as-Node-Applications-Debugger.
Пробовал уже давно, но и тогда проблем не возникало.
Ndb «пошаговый» ровно настолько же, насколько и gdb, т.е. можно просто поставить брейк в нужные места (причём это можно сделать и в самом коде с помощью строчки «debugger;») и дальше запускать выполнение пока не встретится брейк.
Пробовал уже давно, но и тогда проблем не возникало.
Ndb «пошаговый» ровно настолько же, насколько и gdb, т.е. можно просто поставить брейк в нужные места (причём это можно сделать и в самом коде с помощью строчки «debugger;») и дальше запускать выполнение пока не встретится брейк.
+1
Не пробовал, но из этой статьи можно узнать, как дебажить привычным образом в Хроме.
+1
И приходите в IRC, #node.js (да, в имени точка).
В какой IRC-сети?
0
Я пытался поставить на Убунту-сервер 9.0 — просит очень много дополнительных ресурсов — у меня почти чистая установка. Кажется, хотело даже cc compiler. Ставил .deb пакет. Так как вы в теме, может посоветуете, как убить все недостающие зависимости одним выстрелом?
0
Не могли бы вы рассказать какие существуют альтернативы node.js, и какие у него преимущества по сравнению с альтернативами?
0
Так ли хороша парадигма одного процесса на приложение? Нужно либо очень внимательно следить за тем, чтобы в основном приложении не было узких мест, либо смириться с неэффективностью при отсутствии возможности ручного распараллеливания на многоядерных процессорах.
0
В той нише, которую занял node, это вполне оправдано. Врядли вы будете спорить с тем, что Nginx справляется со своеими задачами, а он в основном и сделан на event-loop. Вы можете возразить, что в Nginx параллельно работают несколько таких обработчиков. Но это можно сделать и на node, просто запустив несколько копий приложения. Если нужно связать отдельные потоки, то уже есть готовые библиотеки.
Наличие нескольких потоков в приложении не освобождает программиста от необходимости следить за узкими местами. Если есть вероятность, что какой-то поток намертво повиснет, то это подрывает доверие к такому приложению, так как могу повиснуть и два, и большее количество потоков. Фишка же node заключается в том, что подобные длительные операции, например обращение к диску или БД, выполняются в отдельном потоке или с помощью асинхронных функций операционной системы, а значит никогда не блокируют основной поток (цикл) выполнения.
Наличие нескольких потоков в приложении не освобождает программиста от необходимости следить за узкими местами. Если есть вероятность, что какой-то поток намертво повиснет, то это подрывает доверие к такому приложению, так как могу повиснуть и два, и большее количество потоков. Фишка же node заключается в том, что подобные длительные операции, например обращение к диску или БД, выполняются в отдельном потоке или с помощью асинхронных функций операционной системы, а значит никогда не блокируют основной поток (цикл) выполнения.
0
Sign up to leave a comment.
Understanding node.js