anonrab
@anonrab
as, js, ts

Может ли NodeJS работать как PHP?

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

С Node же все не так радужно. Скрипт на сервере надо запускать. Запущенный скрипт может упасть/зависнуть. Скрипт перестает быть запущенным после перезагрузки сервера. Правки скрипта не применяются автоматически, после правок надо перезапустить скрипт.

Можно ли использовать Node, как PHP - чтобы была директория www, в ней script.js и при обращении server/script.js вызывался этот скрипт, а внутри стандартный function(req){}, в который передаются параметры запроса?
  • Вопрос задан
  • 2927 просмотров
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Конечно. Все, что вам нужно -- http-сервер с поддержкой CGI (тот же апач) и пишите скрипты c заголовком #!/usr/bin/env node. Вот что-то такое уже даже сделали: larsjung.de/node-cgi/.

Не совсем как PHP, потому что mod_php работает несколько по другому, но эффект тот же: медленно, каждый раз запускается интерпретатор с нуля и прочие прелести устаревших решений:)
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
zBit
@zBit
Full stack web developer
Запускайте Node приложения через grunt с настроенным autoreload'ом. В итоге получите то что хотели: изменили файл, и сервак перезапустится, вы сразу увидите изменения.
Ответ написан
Комментировать
AMar4enko
@AMar4enko
Ну так пишите на PHP, в чем проблема-то?
Ответ написан
Может. Только не стоит - теряются все плюсы и Node.js превращается в такое же унылое говно, как и PHP - слишком большое время инициализации скрипта. Программа на Node точно такая же, как и на PHP и любом другом языке. Вот только обычно программы на PHP взаимодействуют с web-сервером через cgi протокол, а программы на Node запускают собственный web-сервер и получают либо запросы напрямую, либо от основного web-сервера. Никто не мешает положить скрипт в папку, первой строчкой скрипта прописать интерпретатор, прописать возможность запуска в каком-нибудь Apache и выводить данные через console.log вместо echo.
Ответ написан
Комментировать
nowfine
@nowfine
сисадмин 30+ левел
эй эй, @anonrab, полегче.

если непредвзято взглянуть, то php скрипт тоже надо запускать. Раньше ручками, а потом научили делать это вебсервер.
Так и для ноды лишь надо найти крайнего и перепоручить ему запуск ноды.
в этом крон не прихотлив.
cgi с апачи или ынджайникса - тоже.
Есть еще init скрипты при старте системы, там можно даже обработчика своего сделать который будет перезапускать твою ноду. А можно даже ноду написать которая сама себя перезапустит, обновит строчку или отправит письмо.

ps. ссылка битая на script.js
pps. А php всем плох, кроме того, что, черт возьми, все еще работает, "пока работает сервер".

и да, самое главное забыл - thatextramile.be/blog/2012/01/hosting-a-node-js-si...
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Я думаю вам просто не нужен Node.js а нужен PHP, так как ваш подход убъект весь профит от node.js. Если нужна производительность - HHVM или HippyVM.
Ответ написан
Комментировать
@andreyzenkov
javascript developer
Такие вопросы взрывают мозг! Пожалуйста прекратите.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы