4

我是 node.js 的新手。尝试在请求结束时打印控制台。我尝试访问 localhost:8080 和 localhost:8080/,但终端中没有打印任何内容。知道为什么吗?这样做是因为当我运行此示例时,因为当我尝试在http://tutorialzine.com/2012/08/nodejs-drawing-game/上运行演示时,终端说套接字已启动,但它不呈现 index.html 页面. 所以我不明白为什么这个为其他人提供静态文件的代码对我不起作用。

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);
4

2 回答 2

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);
于 2013-04-02T06:31:35.607 回答
0

您应该在请求处理程序中调用 node-static serve 以便您可以获得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);
于 2013-04-02T05:36:24.153 回答