JavaScript на стороне сервера, как PHP - PullRequest
5 голосов
/ 19 апреля 2010

Сейчас я думаю о том, чтобы установить свой код на стороне сервера в JavaScript и начать все делать с ним, но я хочу знать о его безопасности и гибкости по сравнению с PHP.

Я тоже хочу знать, может ли он успешно использоваться для разработки таких вещей, как форумы, полноценные веб-сайты и тому подобное, как это делает PHP.

Ответы [ 8 ]

9 голосов
/ 19 апреля 2010

Javascript только начинает получать некоторое присутствие на сервере, с такими вещами, как ServerJS и nodeJS , но сейчас вам, вероятно, лучше всего использовать PHP для своего сервера код стороны и javascript для украшения на стороне клиента.

6 голосов
/ 19 апреля 2010

Вопрос очень, очень широкий. Интерпретировать это как «могу ли я использовать Javascript на сервере»:

Фундаментально, конечно, Javascript - очень мощный язык, и поэтому вы можете заниматься разработкой на нем на стороне сервера, точно так же, как на стороне клиента (и если вы также выполняете сценарии на стороне клиента, вы получаете определенные преимущества в повторном использовании, используя Javascript на сервере).

  • Для систем Apache существует проект v8cgi (плагин FastCGI Javascript с коннекторами, использующий сверхъестественный быстрый движок Google V8 ).
  • В системах на базе Microsoft IIS поддерживает Javascript ( JScript ) на сервере из коробки (я использую это все время), который имеет доступ ко всем компонентам ActiveX (например, для общение с базами данных, работа с файловой системой и т. д.).
  • Если ваша серверная платформа основана на JVM, есть Rhino , который является Javascript для платформы Java и имеет доступ ко всем (или почти всем) библиотекам, доступным для Java & mdash; например, огромная экосистема библиотек и плагинов.
  • Помимо v8cgi, есть несколько других проектов, построенных на движке Google V8.
  • Есть место, которое делает полный стек для вас под названием chromeserver (я не знаю, каков их бэкэнд; я не собираюсь делать выводы из названия).
  • Павел упомянул ServerJS и NodeJS .
  • Это целый CommonJS проект.

Etc. и т. д. и т. д. В Википедии есть список .

В противовес этому существует очень богатая экосистема, построенная на PHP. Если вы не используете что-то вроде Rhino для платформы Java или JScript для IIS (из-за экосистем, которые они используют), вы можете обнаружить, что при разработке в Javascript для сервера у вас нет такой экосистемы. Я имею в виду, если вы ищете предварительно созданное программное обеспечение для форума или вики (например), давайте просто скажем, что вы не можете качнуть мертвую кошку, не найдя одну на основе PHP, и то же самое нельзя сказать о Javascript на сервере .

5 голосов
/ 19 апреля 2010

Как они обычно используются, PHP и JavaScript работают в совершенно разных мирах и не очень сопоставимы. (Существует серверная версия JavaScript, но справедливо сказать, что он пока не особенно широко распространен и не работает на стандартном веб-хостинге.)

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

Я тоже хочу знать, может ли он успешно использоваться для разработки таких вещей, как форумы, полноценные веб-сайты и тому подобное, как это делает PHP.

Нет, не с клиентским Javascript. Для динамических приложений вам всегда понадобится какой-нибудь серверный язык, поддерживающий его, будь то PHP или другой язык, такой как ASP, Python, Ruby, Perl ....

2 голосов
/ 19 апреля 2010

Чтобы заменить PHP на Javascript, вам нужен Javascript на стороне сервера, и на этом фронте многое происходит. Mozilla Rhino запускает Javascript поверх JVM, и кажется, что Google также работает над своей собственной серверной структурой Javascript . Наиболее популярные производственные реализации:

  • Helma : несколько активных проектов используют его, работают на Jetty & Rhino и позволяют разработчикам использовать возможности JVM, имеют собственную объектно-ориентированную инфраструктуру MVC
  • Project Phobos : работает на Glassfish & Rhino и позволяет разработчикам использовать возможности JVM, включает подключаемые модули для NetBeans и интегрируется с инфраструктурой веб-интерфейса jMaki
  • JSSP : Очень простая структура на стороне сервера, очень похожая на классические ASP, JSP и PHP

Jaxer от Aptana показал многообещающие результаты, особенно в том, что касается DOM на стороне сервера, но проект кажется мертвым. Насколько я понимаю, node.js не является серверной средой Javascript в том же смысле, что и Хельма и Фобос. Вместо этого его можно использовать для написания управляемых событиями серверов в Javascript (например, для написания собственного веб-сервера).

0 голосов
/ 07 июня 2013

Да, мой сайт написан node.js

Используя websvr , в его стиле Java есть фильтр и обработчики, размещаемые на ОС Debian.

0 голосов
/ 19 апреля 2010

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

Это кроссплатформенный язык, который (среди прочих целей) компилируется в исходные коды JavaScript и PHP, а также байт-код NekoVM. Для серверного JavaScript существуют привязки NodeJS.

Таким образом, вы не привязаны к конкретной платформе. API Neko и PHP в значительной степени совместимы, поэтому вы можете развертывать на обеих платформах, имея возможность выбрать скорость и постоянство Neko или простоту развертывания PHP. Обратите внимание, однако, что вывод PHP имеет небольшие издержки, хотя обычные оптимизаторы как eaccelerator сделают это едва заметным.

Haxe значительно менее простителен, чем JavaScript и PHP. Это усложняет процесс обучения, но делает его более безопасным, надежным и в конечном итоге более продуктивным инструментом.

0 голосов
/ 19 апреля 2010

PHP и JavaScript - это два разных языка, которые делают две разные вещи. Один не может заменить другой. Скорее всего, вы собираетесь использовать комбинацию из двух. JavaScript для клиентских вещей. PHP для серверных вещей.

0 голосов
/ 19 апреля 2010

Одним словом: нет. Javascript - это клиентский язык. Для того, чтобы описать то, что вы описываете, вам необходим серверный язык, такой как PHP.

РЕДАКТИРОВАТЬ: ОК, технически возможно реализовать Javascript в других областях, кроме браузера, но это не очень распространено.

5 ЛЕТ РЕДАКТИРОВАНИЯ: 5 лет спустя этот ответ, очевидно, не точный, с популярностью таких вещей, как node.js. Пусть это будет свидетельством того, как быстро все может измениться!

...