2010-07-19 8 views
2

У меня есть Apache httpd server и node.js. Мне нужно подражать реальным данным JSON, которые меняются каждый раз.Node.js запустить скрипт

я обнаружил, что я могу запустить node.js как сервер в автономном режиме, как это:

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

Это круто, но я не могу получить доступ к нему через запрос AJAX, так как есть другой порт.

Вопрос: Как я могу запустить этот скрипт, доступ к которому осуществляется через другой путь, например. http://localhost/json (не как standanole работает на другом порту)

Спасибо,

ответ

2

Вы могли бы прокси-соединение от основного веб-сервера к Node.js. Там отличный учебник по dailyjs http://dailyjs.com/2010/03/15/hosting-nodejs-apps/ - хотя речь идет не о Apache, но Nginx

+0

Хммм ... Хороший один ... Но я сделал это с помощью .htaccess RewriteRule^json.html $ http://127.0.0.1:8124/ [P] –

0

Если вы используете Node.js вам могли перепускной Apache altogther. Я работал с базовыми приложениями без apache просто отлично (хорошо, чтобы начать все равно), и у меня были все статические файлы (css js, images и т. Д.) На s3/cloudfront.

Однако теперь я использую NGNIX в качестве переднего конца (для кэширования и т. Д.), И я по существу загружаю баланс, поступающий в разные порты, где у меня несколько приложений на нескольких приложениях, работающих на разных портах. Все на 1 коробке кстати.

Apache не идеален для node.js. В самом деле, если ваше приложение отделяя основную информацию вы должны проверить это, чтобы понять, почему http://scoop.simplyexcited.co.uk/2010/07/05/node-js-brief-overview-2/

Если вы только экспериментируют с узлом, вы не действительно нужно Ngnix (ну не просто же так или иначе)

PS: насколько ваше приложение не возвращает JSON правильно, я использую нечто подобное.

res.writeHead(200, { "Content-Type" : "text/plain" }); 

     myJSON.push({/* some stuff during a loop */}) 

    res.write(JSON.stringify(myJSON)); 
    res.end(); 
Смежные вопросы