0

このチュートリアルhttpを使用して構築した基本的なサーバーを次に示します。ここでは、サーバーを作成する関数を 1 つだけ示します。

function Server(resourceMap, rootFolder) {

    this.resourceMap = resourceMap;
    this.rootFolder = rootFolder;

    function connectionHandler(socket) {
        var data = "";
        console.log('server connected');
        console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort);
        socket.setEncoding('utf8');
            socket.on('data',function(newData) {
                           console.log("NEW DATA\n" +    newData); data += newData;
                            });
        socket.on('end',function(data) {
                           console.log("DATA\n" + data);                                   router.route(data,socket,handle,resourceMap,rootFolder);
                            });
    }

    this.server = net.createServer(connectionHandler);

    this.port = undefined;

    this.startServer = function(port) {
        this.port = port;
        this.server.listen(port, function() { 
            console.log('server bound');});
    }
}

ご覧のとおり、 と の 2 つのリスナーがdataありendます。が発行されたときdataに変数に送信されたものを追加し、 が発行されたときendにこの変数を別の関数に送信します。これはGETリクエストでは機能しません。すべてのデータが一度に送信され、送信されendません。

両方の方法を処理できる必要があります。また、これは宿題であるため、http モジュールを使用できません。

助言がありますか?ありがとう!

追伸 私は初めてなのでnode.jsJavaScript一般的なコメントは歓迎されます

4

1 に答える 1

0

GET動詞には本文が含まれていません。これが、「data」イベントが発生しない理由です。すべてのコード例は、本文を持つ動詞に対してのみ有効です。

もちろんあなたは学んでいますが、最初にあなたが何をしたいのかを理解し、次に実装について考える必要があります。nodejsに関するトレーニングを継続することをお勧めします。

于 2012-12-10T03:59:56.503 に答える