Как запустить NodeJS скрипт в браузере? Как подружить при этом его с Apache

Sanu0074
На сайте с 31.08.2012
Offline
110
5275

Я установил nodejs по этой инструкции: http://www.youtube.com/watch?v=tlntE8fe6u4

Например я хочу вывести какой-нибудь helloword с помощью запроса через браузер: http://127.0.0.1:1337/

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

Файл server.js с содержанием:

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/');
var net = require('net');

var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
});

server.listen(1337, '127.0.0.1');

я поместил в корень сайта куда обращается апач (/www/localhost)

потом пытаюсь запустить сервер и получаю такое:


D:\localhost\www>node server.js
Server running at http://127.0.0.1:1337/

events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:905:11)
at Server._listen2 (net.js:1043:14)
at listen (net.js:1065:10)
at net.js:1147:9
at dns.js:72:18
at process._tickCallback (node.js:442:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
at node.js:929:3

D:\localhost\www>

и через браузер я не могу достучаться...

Почему так? что делать? и как оно работает вообще?

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

Sanu0074
На сайте с 31.08.2012
Offline
110
#1

p.s.

Удалось запустить так:

var http = require('http');
var url = require('url');

var server = new http.Server(function(req,res){

var uparse = url.parse(req.url,true);

res.end(uparse.query.msg);
console.log(req.method,req.url);
});

server.listen(1337, '127.0.0.1');

Я так понимаю res.end() убивает сервер, или как?

И все же объясните мне, как вообще это работает?

---------- Добавлено 23.01.2015 в 06:41 ----------

немного изменил чтобы понять

var http = require('http');

var url = require('url');
var arr = [];
var server = new http.Server(function(req,res){

var uparse = url.parse(req.url,true);

arr.push(uparse.query.msg);

res.writeHead(200,{"Content-Type": "text/html"});
var str = '';
for(i=0;i<arr.length;i++){
if(typeof(arr)==='undefined'){
continue;
}
str += '<p>'+arr+'</p>';
}

res.end(str);
});

server.listen(1337, '127.0.0.1');

оказывается что массив всегда хранит все для всех клиентов? тут нет такого чтото вроде сессий в PHP?

WEMASTER
На сайте с 16.08.2012
Offline
95
#2

Я так понял что тебе вероисповедание не позволяет изучить простые мануалы.

Например вот этот: https://www.youtube.com/watch?v=ILpS4Fq3lmw&list=PLsuEohlthXdkRSxJTkmTstWKHgBHsd3Dx

res.end()

Отправляет ответ клиенту.

Используй Express и не забивай людям голову.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий