Я новичок в таких вещах, но в последнее время я'много слышал о том, как хорош Node.js. Учитывая, как сильно я люблю работать с jQuery и JavaScript в целом, я не могу не задаться вопросом, как решить, когда использовать Node.js. Веб-приложение, которое я имею в виду, - это что-то вроде Bitly - берет какой-то контент, архивирует его.
Из всей домашней работы, которую я выполнял в последние несколько дней, я получил следующую информацию. Node.js
Некоторые из источников, с которыми я сталкивался, следующие:
Учитывая, что Node.js может быть запущен почти "из коробки" на инстансах Amazon's EC2, я пытаюсь понять, для решения какого типа задач требуется Node.js, а не любой из могучих королей, таких как PHP, Python и Ruby. Я понимаю, что это действительно зависит от опыта владения языком, но мой вопрос больше относится к общей категории: Когда использовать тот или иной фреймворк и для решения каких задач он особенно подходит?
Вы проделали отличную работу по обобщению того, что есть в Node.js. Мне кажется, что Node.js особенно подходит для приложений, в которых вы хотите поддерживать постоянное соединение от браузера к серверу. Используя технику, известную как "длинный опрос", вы можете написать приложение, которое посылает обновления пользователю в реальном времени. Выполнение длинного опроса на многих веб-гигантах, таких как Ruby on Rails или Django, создаст огромную нагрузку на сервер, поскольку каждый активный клиент съедает один серверный процесс. Такая ситуация равносильна атаке tarpit. Когда вы используете что-то вроде Node.js, серверу не нужно поддерживать отдельные потоки для каждого открытого соединения.
Это означает, что вы можете создать браузерное приложение для чата на Node.js, которое не требует почти никаких системных ресурсов для обслуживания большого количества клиентов. В любое время, когда вы хотите выполнить подобный длительный опрос, Node.js - отличный вариант.
Стоит отметить, что и в Ruby, и в Python есть инструменты для выполнения подобных задач (eventmachine и twisted, соответственно), но Node.js делает это исключительно хорошо и с нуля. JavaScript исключительно хорошо приспособлен к модели параллелизма на основе обратных вызовов, и здесь он преуспел. Кроме того, возможность сериализации и десериализации с помощью JSON, присущая как клиенту, так и серверу, - это очень здорово.
Я с нетерпением жду других ответов здесь, это фантастический вопрос.
Стоит отметить, что Node.js также отлично подходит для ситуаций, в которых вы будете повторно использовать большое количество кода через разрыв между клиентом и сервером. Фреймворк Meteor делает это действительно легко, и многие люди предполагают, что это может стать будущим веб-разработки. По своему опыту могу сказать, что писать код на Meteor очень весело, и большая часть этого - тратить меньше времени на размышления о том, как вы собираетесь реструктурировать свои данные, чтобы код, который работает в браузере, мог легко манипулировать ими и передавать их обратно.
Вот статья о Pyramid и long-polling, который, как оказалось, очень легко настроить с небольшой помощью gevent: TicTacToe и длинный опрос с Pyramid.
Я считаю, что Node.js лучше всего подходит для приложений реального времени: онлайн-игр, инструментов для совместной работы, чатов или всего, где действия одного пользователя (или робота? или датчика?) с приложением должны быть видны другим пользователям немедленно, без обновления страницы.
Следует также отметить, что Socket.IO в сочетании с Node.js позволит снизить задержку в реальном времени еще больше, чем это возможно при длинном опросе. Socket.IO вернется к длинному опросу в худшем случае, а вместо него будет использовать веб-сокеты или даже Flash, если они доступны.
Но я также должен упомянуть, что практически любая ситуация, когда код может блокироваться из-за потоков, может быть лучше решена с помощью Node.js. Или в любой ситуации, когда вам нужно, чтобы приложение управлялось событиями.
Кроме того, Райан Дал сказал в докладе, который я однажды посетил, что бенчмарки Node.js близко конкурируют с Nginx для обычных старых HTTP-запросов. Так что если мы построим на Node.js, мы сможем достаточно эффективно обслуживать наши обычные ресурсы, а когда нам понадобится событийно-управляемый материал, он будет готов его обработать.
Плюс ко всему это JavaScript все время. Лингва Франка на всем стеке.
Причины использования NodeJS:
Он работает JavaScript, так что вы можете использовать одном языке на сервер и клиент, и даже поделиться какой-то код между ними (например, для проверки формы, или для визуализации вид с обеих сторон.)
В однопоточный событийная система-это быстро даже при работе с большим количеством запросов одновременно, а также простой, по сравнению с многопоточными Java или RoR рамки.
Постоянно растущий пул пакеты можно через npm, включая клиентские и серверные библиотеки/модули, а также средства командной строки для веб-разработки. Большинство из них удобно размещен на GitHub, где иногда вы можете сообщить о проблеме и найти его починили в течение часа! Это's хороший, чтобы иметь все под одной крышей, с стандартизированной отчетности выдачи и делается достаточно просто.
Она стала де-факто стандартом среду для запуска в JavaScript-инструментов и другие веб-инструменты, в том числе задач бегунов, minifiers, beautifiers, Линта, препроцессоры, пакетов и аналитика процессоры.
Кажется, вполне подходит для прототипирования, быстрой разработки и быстрая итерация продукта.
Причины **** не использовать NodeJS:
Он работает JavaScript, который не имеет проверки типов во время компиляции. Для больших и сложных безопасность систем или проектов, включая сотрудничество между различными организациями, а язык, которым рекомендует контрактные интерфейсы и дает статическая проверка типов может сэкономить вам время отладки (и взрывы) в долгосрочной перспективе. (Хотя в JVM застрял с нуля
, поэтому, пожалуйста, использовать Haskell для ядерных реакторов.)
К этому следует добавить, многие пакеты в НПМ немного сырье, и еще при быстром развитии. В некоторых библиотеках для пожилых рамки прошли десятилетия испытаний и ошибок, и очень стабильный сейчас. Npmjs.org нет механизма для пакетов уровень, что привело к распространению пакетов делает более или менее то же самое, из которых большой процент уже не выдерживают.
Вложенного обратного вызова ад. (Конечно, есть 20 различных решений в этом...)
Постоянно растущий пул пакетов может сделать один проект NodeJS появляются радикально отличается из следующего. Существует большое разнообразие в реализации из-за огромного количества возможных вариантов (например, Express/Sails.js/Meteor/Derby). Иногда это может сделать его более трудным для нового застройщика, чтобы перейти на узел проекта. Контраст, что с рельсы разработчик присоединения к существующему проекту: он должен иметь возможность ознакомится с приложением довольно быстро, потому что все рельсы приложения рекомендуется использовать сходное строение.
Работа с файлами может быть немного боли. Вещи, которые тривиальны на других языках, как читать строку из текстового файла, являются достаточно странно, чтобы сделать с Node.js](https://stackoverflow.com/questions/6156501/read-a-file-one-line-at-a-time-in-node-js#comment23691959_6156501), что там'ы на сайте StackOverflow вопрос о том, что с 80+ голоса. Там'ы нет простой способ, чтобы прочитать одну запись из файла CSV. И т. д.
Я люблю NodeJS, это быстро и дико и весело, но мне кажется, мало интересуется доказуемо-правильность. Позвольте's надеюсь мы в конце концов сможем объединить лучшее из обоих миров. Я стремлюсь, чтобы увидеть, что заменить узел в будущем... :)
Если коротко:
Node.js хорошо подходит для приложений, которые имеют много одновременных соединений, и каждый запрос требует лишь очень мало циклов процессора, поскольку цикл событий (со всеми остальными клиентами) блокируется во время выполнения функции.
Хорошая статья о цикле событий в Node.js - Mixu's tech blog: Understanding the node.js event loop.
У меня есть один реальный пример, где я использовал Node.js. Компания, где я работаю, есть один клиент, который хотел иметь простой статический сайт на HTML. Данный сайт предназначен для продажи одного товара через PayPal на1 и клиент тоже хотел иметь счетчик, который показывает количество проданных товаров. Клиент ожидается огромное количество посетителей на этот сайт. Я решил сделать счетчик с помощью Node.js и Express.js]2 основы.
Приложение Node.js был простой. Вам продаваемого количества элементов из Рэдис базы данных, увеличить счетчик, когда товар продан и служить значение счетчика к потребителям через АПИ.
Несколько причин, почему я решил использовать Node.js в этом случае
В этом случае Node.js был отличный выбор.
Наиболее важных причин, чтобы начать свой следующий проект с использованием узлов ...
Чего ожидать ...
Кто его использует?
Там нет ничего, как серебряная пуля. Все приходит с некоторыми затраты, связанные с ним. Это как если вы едите жирную пищу, вы будете опасны для здоровья и здоровое питание не приходит со специями, например, жирной пищи. Это индивидуальный выбор, хотят ли они здоровью или специй, так как в их пище. Одинаково Node.js считаю использоваться в конкретной ситуации. Если ваше приложение не вписывается в этот сценарий, вы не должны рассматривать его для разработки приложений. Я просто говорю моя мысль о том же:
Когда использовать Node.JS
Когда не следует использовать Node.JS
Внимание масштабируемость Node.JS
Node.JS Альтернативы
Есть другой вариант для использования на месте Node.JS однако Верт.х, кажется, довольно перспективная и имеет множество дополнительных функций, таких как polygot и лучше соображений масштабируемости.
Еще одна интересная вещь, что думаю никто не упомянул о Node.js это удивительное сообщество, система управления пакетами (НПМ) и количество модулей, которые существуют, которые можно включить просто включая их в свой пакет.JSON-файл.
Мой кусок: nodejs отлично подходит для создания систем реального времени, такие как аналитика, чат-приложений, интерфейсы, серверы, и т. д. Черт, я сделал свой первый чат приложение, с помощью nodejs и Socket.Ио до 2 часов и, что тоже во время экзамена неделю!
Редактировать
Его уже несколько лет, как я начал использовать nodejs, и я использовал его в делать много разных вещей, в том числе статических файловых серверов, простая аналитика, чат программы и многое другое. Это мое мнение о том, когда использовать nodejs
При использовать
При принятии системы, которая сделала акцент на параллелизм и скорость.
Когда не следует использовать
Ее очень универсальный веб-сервер, так что вы можете использовать его везде, где вы хотите, но наверное не в этих местах.
Имейте в виду, что я просто придираюсь к мелочам. Для статических файловых серверов, Апач лучше, в основном потому, что он широко доступен. Сообщество nodejs выросло больше и более зрелым за эти годы, и можно с уверенностью сказать, nodejs может использоваться практически везде, если у вас есть свой собственный выбор хостинга.
Он может быть использован где
На мобильном фронте, в прайм-тайм компании полагались на Node.js для мобильных решений. Проверьте, почему?
В LinkedIn - выдающийся пользователей. Весь их мобильного стек построен на Node.js. Они пошли от бега 15 серверов с 15 случаях на каждую физическую машину, для всего в 4 экземплярах, который может обрабатывать двойной трафик!
ибэй запустил КЖ.Ио, веб-языка запросов для API HTTP, который использует Node.js как стека во время выполнения. Они смогли настроиться обычный разработчик-качество рабочей станции Ubuntu для обработки более 120 000 активных соединений на один процесс Node.js с каждого соединения, потребляя около 2 кб памяти!
Волмарт модернизирована свое мобильное приложение для использования Node.js и толкнул ее обработки JavaScript к серверу.
Подробнее на: http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/
[Узел лучше для обработки -] одновременных запросов1
Итак, давайте начнем с истории. За последние 2 года я работаю на JavaScript и разработке веб-передний конец, и я наслаждаюсь этим. Заднем конце ребята дают нам некоторые API написан на Java,и на Python (мы не волнует) и мы просто написать AJAX-вызов, чтобы наши данные и угадайте что ! мы сделали. Но в реальном это не так просто, если данные мы получаем не правильно или есть какая-то ошибка сервера, то мы застряли и нам нужно связаться с нашим заднем конце ребята по почте или в чате(иногда на WhatsApp тоже :).) Это не круто. Что, если мы написали наш API в JavaScript и вызов этих API, из нашего переднего плана ? Да, это очень здорово, потому что если у нас возникнут какие-то проблемы в API мы можем заглянуть в него. Угадайте, что ! вы можете сделать это прямо сейчас , как ? – Узел есть для вас.
ОК, договорились, что вы можете написать свое API в JavaScript, но что, если я согласен с выше проблемы. У вас есть какие-либо другие причины использовать узел для API-интерфейс REST ?
так вот начинается волшебство. Да у меня есть и другие причины, чтобы использовать узел на нашем API.
Давайте вернемся к нашей традиционной системе API-интерфейс REST, который основан на блокировании операций или потоков. Предположим, что два одновременных запроса происходит( R1 и R2) , каждый из них требует работы с базой данных. Таким образом, в традиционной системе что происходит :
1. Способ работы в режиме ожидания : наш сервер начинает обслуживать Р1
запрос и ждет ответа на запрос. после завершения Р1
, сервер начинает служить Р2
и делает это одинаково. Так что ожидание-это не очень хорошая идея, потому что у нас нет столько времени.
2. Продевать нитку дорогу : наш сервер создает два потока для обоих запросов R1
и Р2
и служат своей цели после запроса базы данных, чтобы охладить его быстро.Но он занимает много памяти, потому что вы можете увидеть, как мы начали два потока также увеличивает проблему, когда оба запроса запрашивает те же данные, то вам придется иметь дело с тупиком рода вопросы . Поэтому его лучше не ждать, но все равно вопросы есть.
Теперь здесь , как узел будет делать это:
3. Nodeway : когда же одновременный запрос поступает в узел, то он будет регистрировать события с ее обратный вызов и двигаться вперед, он не будет ждать ответа на запрос по тому или иному запросу.Поэтому, когда Р1
запрос приходит тогда цикл событий узла (да есть цикл обработки событий в Node, который служит этой цели.) зарегистрировать событие со своей функцией обратного вызова и двигаться вперед для сервировки Р2
запрос и так же зарегистрировать свое событие с его обратного вызова. Всякий раз, когда запрос заканчивается, он вызывает соответствующее событие и выполнить его обратного вызова завершения без прерывания.
Так что никакого ожидания, никакой резьбы , никакой памяти потребление – да это nodeway для сервировки API-интерфейс REST.
Мой еще одна причина на выбор Node.js для нового проекта:
Быть в состоянии сделать чистое облако на основе развития
Я использовал Cloud9 против язя на некоторое время и теперь я могу'т представьте себе, без него, она охватывает все развития жизненных циклов. Все, что вам нужно, это браузер и вы можете код в любое время в любом месте на любых устройствах. Вы Don'т нужно проверить в коде в одном компьютере(например, дома), затем выезд в другой компьютер(например, на рабочем месте).
Конечно, там, может быть на основе облачных IDE для других языков и платформ (команда Cloud 9 IDE является добавление поддержки для других языков), но через облако 9 делать Node.js развитие-это очень большой опыт для меня.
Еще один узел, что предоставляет возможность создать несколько instanes V8 в узел через узел'процесс s детский( childProcess.вызов Fork() Каждый из которых требует 10 МБ памяти, как на документы) на лету, при этом не затрагивая основного технологического процесса, на котором запущен сервер. Так что разгрузки фоновое задание, которое требует огромной нагрузки на сервер будет ребенок'ы играть, и мы можем легко убить их в случае необходимости.
Я've был с помощью узла много, и в большинстве приложений, которые мы строим, требует подключений к серверу одновременно самым тяжелым сетевого трафика. Фреймворки, такие как Express.js и новой Koajs (который удален обратного вызова ад) сделал работу на узле еще более проще.
Надев асбестовые авто... Вчера мой титул профессионалы публикаций, [реактивное программирование с JavaScript](http://www.amazon.com/Reactive-Programming-JavaScript-Jonathan-Hayward/dp/1783558555/ref=sr_1_1?ie=UTF8&=1441220486& qid;sr=8-1&keywords=reactive+programming+with+JavaScript). Это't действительно узел.Яш-ориентированных названии; в начале глав предназначено для обозначения теории, а позже код-тяжелый главы посвящены практике. Потому что я этого't действительно думаю, что это будет уместно, чтобы не дать читателям веб-сервер, Node.js казалось, однозначно очевидный выбор. Дело было закрыто еще до его открытия. Я мог бы дать очень радужные представления о моем опыте с Node.js. Вместо этого я был честен и хорошие моменты и плохие моменты с которыми я столкнулся. Позвольте мне включить несколько цитат, которые актуальны здесь:
предупреждение: Node.js и ее экосистемы являются горячее ... достаточно горячей, чтобы сжечь вас плохо! когда я был помощником учителя по математике, одной из неочевидных предложений мне сказали, Не скажу ученик что-то было “легко”. Причина была довольно очевидными: если вы говорите людям что-то легко, кто-то не видит решения могут в конечном итоге чувство (даже больше) тупых, потому что они не только не сделать, как решить проблему, но проблема они слишком глупы, чтобы понять это легко! есть несколько подводных камней, которые не только раздражают людей, приезжающих из кожи питона / Джанго, который сразу же перезагружает Источник Если вы что-либо изменить. С Node.js поведение по умолчанию заключается в том, что если вы сделаете хоть одно изменение, старая версия продолжает быть активным до конца времени или пока вы вручную не остановите и перезапустите сервер. Это неадекватное поведение не только насолил Pythonistas; это также раздражает родной Node.js пользователи, которые предоставляют различные обходные пути. На сайте StackOverflow вопрос “автоперезагрузкой файлов в Node.js” имеет, на момент написания этой статьи, более 200 положительных голосов и 19 ответов; редактирования направляет пользователя на скрипт Тата, узел-руководитель, с домашней страницы в http://tinyurl.com/reactjs-node-supervisor. Эта проблема предоставляет пользователям возможность чувствовать себя глупо, потому что они думали, что они исправили проблему, но старые, багги поведение является абсолютно неизменным. И это легко забыть отказов сервера; я сделал так несколько раз. И послание, которое я хотел бы дать: “Нет, ты не глупая, потому что такое поведение Node.js немного вашей спиной, это просто, что дизайнеры Node.js видела никаких причин, чтобы предоставить здесь надлежащем поведении. Стараюсь справиться с ним, возможно, взять небольшой помощью от узла-руководитель или иное решение, но, пожалуйста, не уходи ощущение, что ты тупой. Ты не один с проблемой; проблема в поведение по умолчанию Node.js’ы”. в этом разделе, после некоторых дебатов, был оставлен внутри, именно потому, что я Дон'т хотите, чтобы дать впечатление “это просто”. Я вырезать мои руки неоднократно при получении вещи на работу, и я не хочу, чтобы сгладить трудности, и поставил вас, чтобы поверить, что становится Node.js и ее экосистемы функционировать ну это простой вопрос и если это не просто для тебя, ты не знаешь, что ты делаешь. Если вы не столкнулись с неприятными трудностями, используя Node.js это замечательно. Если вы делаете, я надеюсь, что вы не дойдете до чувства, “я тупой—там должно быть что-то не так со мной”. Ты не глупый, если вы испытываете неприятных неожиданностей, связанных с Node.js. Это не ты! Это Node.js и ее экосистема! Приложения, которые я действительно не хочу, после того, как нарастающее крещендо в последних главах и заключении, рассказывает о том, что мне удалось найти в экосистеме, и предоставил временное решение для дебильных буквализм: По другой базы данных, которая выглядит крайне привлекательно, а еще можно обменять, это на стороне сервера реализация ключ-значение в HTML5 магазине. Этот подход имеет кардинальные преимущества API, который самый хороший фронт-энд разработчики достаточно хорошо понимаю. Если на то пошло, это тоже API, который большинство не очень хороших разработчиков достаточно хорошо понимаю. Но с узел-хранилище localStorage пакет, в то время как словарь-синтаксис доступа не предложили (вы хотите использовать localStorage.setitem класса(ключ, значение) или хранилище localStorage.метод getitem(ключ), не хранилище localStorage[ключ]), семантика хранилище localStorage реализуются, в том числе квот по умолчанию—5 Мб, почему? Серверного JavaScript-разработчики должны быть защищены от самих себя? для клиентской базы данных, квоты 5МБ на сайте-это действительно щедрый и полезный объем передышку, чтобы позволить разработчикам работать с ним. Можно задать гораздо меньшую квоту и по-прежнему предлагают разработчики неизмеримый улучшение по сравнению прихрамывая с управлением печенья. Ограничение 5МБ не поддается очень быстро на больших данных на стороне клиента обрабатывать, но есть довольно щедрые пособия, что находчивые разработчики могут использовать, чтобы сделать много. Но с другой стороны, 5 Мб-это не очень большая часть всего диски куплены в любое время в последнее время, это означает, что если вы и сайт не соглашаться о том, что разумное использование дискового пространства, или какой-либо сайт является просто эгоистом, он не обойдется вам дорого и вы не в никакая опасность завален жестком диске, Если ваш жесткий диск уже переполнен. Может быть, нам будет лучше, если остаток был чуть меньше или чуть больше, но в целом это достойное решение для преодоления внутренних противоречий для клиента условиях. однако, это может мягко указать на то, что когда вы пишете код для вашего сервера, вам не нужно никакой дополнительной защиты от базы данных более чем сносной размером 5МБ. Большинство разработчиков не понадобится Инструменты действуя в качестве няни и защищая их от хранения более 5 Мб данных на стороне сервера. И квоты 5МБ это закон золотого балансировки на стороне клиента является довольно немного глупо на Node.js сервер. (И, к базе данных для нескольких пользователей, например, транслируется в этом приложении, это может быть отмечено, немного больно, что это не 5 Мб для каждого пользователя учетную запись, если вы не создать отдельную базу данных на диске для каждой учетной записи пользователя; это 5 Мб, разделяемый между всеми учетными записями пользователей вместе. Что мог сделать больно если вы идете вирусный!) В документации говорится, что квота настраивается, но по электронной почте неделю назад к застройщику с вопросом, Как изменить квоту никто не отвечает, как сайте StackOverflow вопрос задают один и тот же. Единственный ответ, который я смог найти в гитхабе исходный код CoffeeScript, где он указан как второй необязательный целочисленный параметр конструктору. Так что это достаточно легко, и можно указать квоту, равную диска или размер раздела. Но помимо переноса функция, которая не имеет смысла, инструмента, автору не удалось полностью следовать очень стандартное соглашение интерпретации 0 как “безлимитный” для переменной или функции, где целое число, чтобы указать максимальный ресурс использования. Лучшее, что можно сделать с этот поиск, вероятно, чтобы указать, что квота Бесконечности:
if (typeof localStorage === 'undefined' || localStorage === null)
{
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage(__dirname + '/localStorage',
Infinity);
}
Поменяв два замечания по порядку:
люди напрасно выстрел себе в ногу постоянно на JavaScript в целом, и в JavaScript, делаются солидные язык был Крокфорд Дуглас по сути говоря, “JavaScript как язык программирования имеет некоторые очень хорошие части и несколько плохих частей. Вот несколько хороших частей. Просто забыть, что ничего другого не существует”. Возможно, горячая Node.js экосистема будет расти ее собственные “Дуглас Крокфорд,” кто скажет: “в Node.js экосистема представляет собой кодирование Дикий Запад, но есть некоторые реальные драгоценные камни, чтобы быть найден. Вот такая "дорожная карта". Вот несколько направлений, чтобы избежать почти любой ценой. Здесь представлены территории с одними из самых богатых пейдерт можно найти в любом языке или среде”. возможно, кто-то может принять эти слова как вызов, и последовать Крокфорд и писать “хорошие части” и / или “прелестей” для Node.js и его экосистемы. Я бы купила копию! И учитывая степень энтузиазма и чистой работы-часов по всем проектам, это может быть оправданной мерой в год, или два, или три, резко умерить любые замечания по поводу незрелой экосистемы, сделанные во время написания этой статьи. Это действительно может иметь смысл в пять лет, чтобы сказать: “в 2015 году Node.js экосистемы было несколько минных полей. В Node.js экосистемы 2020 имеет несколько райских уголков”.
Если ваше приложение в основном тросов веб-API или других Ио каналы, давать или принимать пользовательский интерфейс, node.js может быть справедливым выбором для вас, особенно если вы хотите выжать самых масштабируемость, или, если ваш основной язык в жизни-это JavaScript (JavaScript или transpilers сортов). Если вы строите микрослужб, node.js тоже хорошо. Node.js также подходит для любого проекта, мала или просто.
Его основная точка продажи это позволяет передним-Эндерс взять на себя ответственность за серверную вещи вместо обычного деления. Другая обоснованная точка продажи, если вашей рабочей силы ориентирован на JavaScript для начала.
Однако по прошествии определенного времени, вы не можете масштабировать свой код без жутких хаков для выгонки модульность, читаемость и контроля потока. Некоторые любят тех, кто хоть хаки людьми, особенно с событийно-ориентированный JavaScript в фоновом режиме, они покажутся знакомыми или простительно.
В частности, когда нужно выполнить синхронные потоки, вы начинаете кровотечение за половинчатые решения, что значительно замедлять вас вниз с точки зрения процесса разработки. Если у вас есть вычисление интенсивных частей в приложении протектора с осторожностью выбирать (только) node.js. Может http://koajs.com/ или другие новинки облегчить те, что изначально тернистый аспектов, по сравнению с, когда я первоначально использовал node.js или написал это.
Я могу поделиться несколько точек, где&зачем использовать узел JS.
Недостатки:-
Вывод:- Nodejs лучше использовать для простых и приложений реального времени..если у вас очень большой бизнес-логикой и сложные функции лучше не использовать nodejs. Если вы хотите создать приложение с чатом и любой совместной работы узла.. может быть использован в определенных местах и остаются должны пойти с вашим технологии удобство.
Узел отлично подходит для быстрых прототипов, но я'd никогда не использовать его снова для ничего сложного. Я провел 20 лет развивает отношения с компилятором, и я уверен, скучаю по ней.
Узел является особенно болезненным для сохранения кода, который вы не'т посетивших на некоторое время. Типа информация и время компиляции обнаружения ошибок хорошие вещи. Почему бросить все это? Для чего? И черт, когда что-то идет не Южная трассировки стека довольно часто совершенно бесполезны.