Основная идея реализации node.js?

Вот моя текущая теория о том, как будет работать node.js:

  1. Я устанавливаю node.js на свой сервер, чтобы он мог интерпретировать файлы javascript.
  2. Затем я пишу свои файлы javascript и помещаю их на свой сервер (так же, как и с файлами PHP).
  3. Затем я взаимодействую с этими файлами через клиентский javascript.

Очевидно, у меня что-то не так, потому что я искал учебник в течение последнего часа или около того, который научит меня, как установить его на моем сервере, но все они, похоже, сосредоточены на его локальной установке.

Может ли кто-нибудь дать краткое изложение того, как будет работать окончательная реализация?


person Community    schedule 23.03.2013    source источник


Ответы (2)


Вы устанавливаете его на «сервер», как и на любом другом компьютере — с правами администратора/корневого доступа через установщик или менеджер пакетов.

Теперь предполагается, что под «сервером» вы имеете в виду компьютер. Если вместо этого вы имеете в виду существующее «серверное приложение», такое как Apache или IIS, Node.js не интегрируется напрямую с ними. Он в первую очередь заменяет их, позволяя вам определить все серверное приложение с довольно низкого уровня как скрипт.

Такой скрипт можно найти на домашней странице проекта:

Этот простой веб-сервер, написанный на Node, отвечает «Hello World» на каждый запрос.

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Для запуска сервера поместите код в файл example.js и выполните его программой node из командной строки:

% node example.js
Server running at http://127.0.0.1:1337/

Помимо этого примера, вы можете проверить req.method и req.url, обычно через маршрутизатор или веб-фреймворк, чтобы определить, как реагировать. express или compoundjs было бы хорошим вариантом для начала.

Вы по-прежнему можете использовать другие серверные приложения в качестве HTTP-прокси для Node.js, передавая трафик. Но Node.js по-прежнему будет работать отдельно. Если вы используете IIS, есть даже iisnode, который охватывает большую часть настройки для этого.

person Jonathan Lonowski    schedule 23.03.2013
comment
Спасибо за вашу помощь! После публикации вопроса я обнаружил, что (очевидно) я не могу использовать node.js в своей учетной записи общего хостинга, даже если у меня есть доступ к SSH. Это звучит правильно для вас? По-видимому, даже если бы я его установил, мне не разрешили бы доступ к определенным портам. - person ; 24.03.2013
comment
@JoeRocc Да. Обычно вам нужен хост, который явно поддерживает Node.js, или обновите его до частного или выделенного хоста. план хостинга, чтобы у вас было больше контроля. - person Jonathan Lonowski; 24.03.2013
comment
Извините за смехотворно поздний ответ. Итак, весь мой сервер node.js (компьютер) будет работать на одном скрипте? Что делать, если я хочу иметь несколько веб-сайтов? Всегда ли пользователь работает с моим сервером через один скрипт node.js, или я каким-то образом прикрепляю определенные файлы node.js к разным доменам? - person ; 04.04.2013
comment
@JoeRocc Похоже, вы ищете виртуальные хосты: stackoverflow.com/a/8503918. Вы можете запустить несколько http.Server с одним процессом node; они просто должны слушать свой собственный порт. Опция Express может сжать их до одного http.Server. - person Jonathan Lonowski; 04.04.2013

Node.js — это движок JavaScript на стороне сервера, который позволяет вам создавать веб-сервер с языком JavaScript. Это похоже на PHP в Apache и C# в IIS. Отличие состоит в том, что Node.js основан на событиях и не создает много потоков, как C# IIS. Таким образом, Node.js обладает потенциалом обработки большого количества одновременных запросов. руководство по Node.js можно найти на веб-сайте Node.js: http://nodejs.org/api/

Затем я взаимодействую с этими файлами через клиентский javascript.

Я бы не согласился с вами в этом вопросе, потому что Node.js просто создает веб-сервер, любое взаимодействие между сервером и клиентом основано на HTTP, что означает, что веб-сервер Node.js отвечает на ваши запросы со стороны клиента.

person Shuping    schedule 23.03.2013
comment
Хорошо, я узнал об этом из руководств, но я не знаю, как начать реализацию на моем сервере. - person ; 23.03.2013
comment
Я предлагаю вам попробовать express.js expressjs.com, это поможет вам создать веб-сервер, ориентированный на Node.js. - person Shuping; 23.03.2013