Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Ошибка при создании простого сервера (https://javascript.ru/forum/node-js-io-js/54595-oshibka-pri-sozdanii-prostogo-servera.html)

Sanu0074 24.03.2015 01:58

Ошибка при создании простого сервера
 
node v0.12.0
Код:
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[i])==='undefined'){
            continue;
        }
        str += '<p>'+arr[i]+'</p>';
    }
    
    res.end(str);
});

server.listen(1337, '127.0.0.1');

Ошибка
Код:

SyntaxError: Unexpected identifier
    at Object.exports.createScript (vm.js:44:10)
    at REPLServer.defaultEval (repl.js:117:23)
    at bound (domain.js:254:14)
    at REPLServer.runBound [as eval] (domain.js:267:12)
    at REPLServer.<anonymous> (repl.js:279:12)
    at REPLServer.emit (events.js:107:17)
    at REPLServer.Interface._onLine (readline.js:214:10)
    at REPLServer.Interface._line (readline.js:553:8)
    at REPLServer.Interface._ttyWrite (readline.js:830:14)
    at ReadStream.onkeypress (readline.js:109:10)

Почему возникает эта ошибка? на предыдущей версии нода все работало!

cyber 24.03.2015 12:46

Sanu0074, Сделайте проверку в 8 строке есть ли что то query или там undefined. А вообще вроде все норм.

newuser1001 24.03.2015 13:04

Цитата:

Сообщение от cyber
проверку в 8 строке есть ли что то query или там undefined

так у него же есть обработка
if(typeof(arr[i])==='undefined'){

а даже если бы и не было, это не должно привести к ошибке, просто будет
str += '<p>'+undefined+'</p>';

newuser1001 24.03.2015 13:10

Sanu0074,
попробуйте убрать new, может быть, с 12 версии так нельзя создавать сервер. На 11 все работает (при запуске сервера). И Вы не указали, на каком этапе выпадает ошибка, при запуске сервера, или при обработке запроса. По выводу -- похоже, что при запуске, а там хз.

cyber 24.03.2015 13:19

newuser1001, если query будет undefined, а он будет если не будет параметров то попытка получить msg приведет к падению кода на 8 строке.

cyber 24.03.2015 13:20

Цитата:

Сообщение от newuser1001
попробуйте убрать new

Кстати да, не обратил внимание new там не нужен.
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/');

newuser1001 24.03.2015 13:23

cyber,
А, да, ступил:) Но тогда у него бы выскакивало
TypeError: Cannot read property 'msg' of undefined

cyber 24.03.2015 13:52

Цитата:

Сообщение от newuser1001
А, да, ступил Но тогда у него бы выскакивало

НУ так я и не сказал что из за этого падает код)
Цитата:

Сообщение от cyber
то попытка получить msg приведет к падению кода


Sanu0074 24.03.2015 16:54

просто обновился дo v 0.12.1 и боль прошла)
всем спасибо


Часовой пояс GMT +3, время: 13:09.