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 に答える