Почему и когда использовать Node.js?

Возможный дубликат:
Как решить, когда использовать Node.js?

Извините, если я немного неоднозначен, но я пытаюсь понять реальные преимущества использования Node.js вместо другого сервера -локальный язык.

Я энтузиаст JavaScript, поэтому я, вероятно, буду играть с Node.js, но я хочу знать, буду ли я использовать его в своих проектах.

Ответ 1

Это событие вызвало асинхронную неблокирующую I/O построение ontop V8.

Таким образом, у нас есть все преимущества V8, которые являются интерпретатором Google JavaScript. Поскольку гонка производительности JavaScript еще не закончилась, вы можете ожидать, что Google будет постоянно обновлять производительность на V8 (бесплатно).

У нас есть неблокирующий ввод-вывод, который является просто правильным способом ввода-вывода. Это основано на цикле событий и использует асинхронные обратные вызовы для вашего ввода-вывода.

Он предоставляет полезные инструменты, такие как создание HTTP-сервера, создание сервера TCP, обработка ввода-вывода файлов.

Это высокопроизводительная платформа низкого уровня для любых операций ввода-вывода без необходимости писать все на C с нуля. И он очень хорошо масштабируется из-за неблокирующего ввода-вывода.

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

Существует множество библиотек ОС для Node.js, которые предоставят вам абстракции, такие как Express.js и now.

Вы не хотите использовать Node.js, если хотите (медленные) абстракции высокого уровня делать все для вас. Вы не хотите использовать Node.js, если хотите RAD. Вы не хотите использовать Node.js, если вы не можете позволить себе доверять молодой платформе, либо из-за необходимости писать большие фрагменты кода, чтобы делать вещи, которые встроены в другие рамки, либо потому, что вы не можете используйте Node.js, потому что API еще не стабилен или это релиз под 1.0.

Ответ 2

Два наиболее часто цитируемых преимущества:

  • JavaScript работает как на стороне сервера, так и на стороне клиента. Есть меньше вещей, чтобы учиться, меньше переключение контекста и возможность повторного использования кода через обе стороны.
  • Использует неблокирующий I/O и движок Chrome V8 для обеспечения быстрых, масштабируемых серверов.

Для меня, однако, самая интересная часть - это количество активности в этой области. Для node существует очень много интересных идей, - обязательно просмотрите список Node.js-модулей.

Ответ 3

Если вы (или даже не являетесь таковым) энтузиастом JavaScript, вы можете/должны использовать Node.js по нескольким причинам:

  • Это низкоуровневая, легкая и автономная структура, которая привносит мощность JavaScript в серверную среду.
  • Если вам нравится абстракция более высокого уровня, тогда существует большое количество modules и npm, где вы можете найти широкий спектр готовых приложений.
  • Быстрый/необремененный процесс разработки - например, вам не нужны тонны дополнительных инструментов, чтобы начать писать серьезные вещи.
  • Большое сообщество с открытым исходным кодом, полное энтузиастов и очень талантливых людей.
  • Сделано для создания веб-ориентированных приложений реального времени - там, где (ближайшее) будущее.

Ответ 4

Лично я, скорее всего, использовал бы Node.js, когда:

  • Я хочу написать сервер, который не использует HTTP-протокол .
  • Я прототипирую серверную реализацию.
  • Я пишу сервер, который не ожидает тонны трафика (хотя я никогда не профилировал реализацию Node.js рядом, скажем, с соответствующей реализацией на С++).
  • Я хочу активно участвовать в сообществе (которое, очевидно, растет довольно быстро).