サーチ…


httpサーバー

HTTPサーバーの基本的な例。

http_server.jsファイルに次のコードを記述します。

var http = require('http');

var httpPort = 80;

http.createServer(handler).listen(httpPort, start_callback);

function handler(req, res) {
    
    var clientIP = req.connection.remoteAddress;
    var connectUsing = req.connection.encrypted ? 'SSL' : 'HTTP';
    console.log('Request received: '+ connectUsing + ' ' + req.method + ' ' + req.url);
    console.log('Client IP: ' + clientIP);

    res.writeHead(200, "OK", {'Content-Type': 'text/plain'});
    res.write("OK");
    res.end();        
    return;
}

function start_callback(){
    console.log('Start HTTP on port ' + httpPort)
}

http_server.jsの場所からこのコマンドを実行します。

node http_server.js

次の結果が表示されます。

> Start HTTP on port 80

今度はサーバーをテストする必要があります。インターネットブラウザを開いてこのURLに移動する必要があります:

http://127.0.0.1:80

Linuxサーバを実行しているマシンであれば、次のようにテストすることができます。

curl 127.0.0.1:80

次の結果が表示されます。

ok

あなたのコンソールでは、アプリケーションを実行すると、この結果が表示されます:

> Request received: HTTP GET /
> Client IP: ::ffff:127.0.0.1

httpクライアント

httpクライアントの基本的な例:

次のコードをhttp_client.jsファイルに書き込みます。

var http = require('http');

var options = {
  hostname: '127.0.0.1',
  port: 80,
  path: '/',
  method: 'GET'
};

var req = http.request(options, function(res) {
    console.log('STATUS: ' + res.statusCode);
    console.log('HEADERS: ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log('Response: ' + chunk);
    });
    res.on('end', function (chunk) {
        console.log('Response ENDED');
    });
});

req.on('error', function(e) {
    console.log('problem with request: ' + e.message);
});


req.end();

http_client.jsの場所からこのコマンドを実行します。

node http_client.js

次の結果が表示されます。

> STATUS: 200
> HEADERS: {"content-type":"text/plain","date":"Thu, 21 Jul 2016 11:27:17 GMT","connection":"close","transfer-encoding":"chunked"}
> Response: OK
> Response ENDED

注:この例は、httpサーバーの例に依存しています。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow