2013-04-02 2 views
4

Я новичок в node.js. Попытка получить консоль для печати при завершении запроса. Я пытаюсь перейти на localhost: 8080, а также localhost: 8080 /, но ничего не печатает в терминале. Любая идея почему? Выполнение этого, потому что, когда я запускаю этот пример, потому что, когда я пытаюсь запустить демонстрацию на http://tutorialzine.com/2012/08/nodejs-drawing-game/, терминал говорит, что сокет запущен, но он не отображает страницу index.html. Поэтому я не могу понять, почему этот код для обслуживания статических файлов для других не работает для меня.Node.js Простой запрос на завершение работы сервера

var static = require('node-static'); 

// 
// Create a node-static server instance to serve the './public' folder 
// 
// var file = new(static.Server)('./'); 

require('http').createServer(function (request, response) { 
    request.addListener('end', function() { 
     console.log("ended"); 
    }); 
}).listen(8080); 
+0

Примечание: Это руководство было написано для экспресс 2.x, в котором 'app' был экземпляр' http.Server'. С Express 3.x 'app' вместо этого является' function', поэтому вы не можете просто 'listen()' ему. Просмотрите руководство по миграции от 2.x до 3.x (https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x), особенно [Socket. IO] (https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x#socketio-compatibility). –

ответ

0

Вы должны быть вызов узел статического служить внутри обработчика запроса, так что вы можете получить index.html

var static = require('node-static'); 
var fileServer = new static.Server('./'); 

require('http').createServer(function (request, response) { 
    fileServer.serve(request, response); //add this line 
    request.addListener('end', function() { 
     console.log("ended"); 
    }); 
}).listen(8080); 
7

кажется, что ваш использует Node.js 0.10.x и в новой версии вы должны возобновить читаемых потоки, чтобы сделать их испускают события:

require('http').createServer(function (request, response) { 
    var body = ''; 
    request.setEncoding('utf8'); 
    request.on('readable', function() { 
     body+= this.read(); 
    } 
    request.on('end', function() { 
     console.log('ended'); 
     console.log('Body: ' + body); 
    }); 
    request.resume(); 
}).listen(8080); 
+2

Это сделало трюк для меня, моя система обновилась до последней версии node.js, и внезапно мои приложения node.js были обработаны. :/ –

+0

@NickJennings, также необходимо прослушать 'readable' событие для чтения данных, добавленных в ответ – micnic