今週、プロジェクトは散らばって行われました(常にこのようなものだと言われるべきです)。概要は、さまざまな状況に基づいてダブルオープンする必要があります〜この記事では、ノードに関する学習要約を記録します。次の記事は、プロジェクトから学んだWebのフロントエンドに関する知識です。
1。HTTP
ノードのHTTPモジュールは、最初の記事で公開されました。ここでは、いくつかのルーチンに表示されるAPIを学びます。
コードコピーは次のとおりです。
var qs = require( 'querystring');
require( 'http')。createServer(function(req、res){
if( '/' == req.url){
res.writehead(200、{'content-type': 'text/html'});
res.End([[
'<form method = "post" action = "/url">'、
'<h1>私のフォーム</h1>'、
'<fieldset>'、
'<label>個人情報</label>'、
'<p>あなたの名前は?</p>'、
'<input type = "text" name = "name">'、
'<p> <butth>送信</button> </p>'、
'</form>'、
]。参加する(''));
} else if( '/url' == req.url && 'post' == req.method){
var body = '';
req.on( 'data'、function(chunk){
ボディ +=チャンク;
});
req.on( 'end'、function(){
res.writehead(200、{'content-type': 'text/html'});
res.End( '<b>あなたの名前は<b>' + qs.parse(body).name + '</b> </p>');
});
}それ以外{
Res.Writehead(404);
res.End( 'not in not');
}
})。聞く(3000);
CreatServer([RequestListener])関数のパラメーターはコールバック関数(REQ、RES)であり、REQ(リクエストリクエスト)はhttp.incomingMessageのインスタンスであり、res(Response)はhttp.serverrrsponseのインスタンスです。
URL、RESのメソッドストリング、および2つの方法WriteheadとEndを使用しました。名前が示すように、URLはHTTP(ホスト名の後のすべて)を記録するURLであり、メソッドはHTTP応答を記録するメソッドです。
writehead(StatusCode、[ReasonPhrase]、[Headers])は、HTTP応答ヘッダー情報を送信するために使用されます。この方法は、メッセージが届くときに1回のみ呼び出され、終了のようなメソッドの前に呼び出されなければなりません。代わりにそれを行う場合、最初に書き込み(chunk、[encoding])またはend([data]、[encoding])メソッドを呼び出します。システムは、(目に見えない、変わらない)応答ヘッダーコンテンツを自動的に記録し、書き込みヘートを呼び出します。
Endメソッドは、応答が送信されることを示すためにサーバーにメッセージを送信するため、応答が送信されるたびにこの方法を呼び出す必要があります。パラメーターにコンテンツ(ルーチンなど)がある場合、この方法は、書き込み(「コンテンツ」、[エンコード])と終了方法の両方を呼び出すことと同等です。これは非常に便利です。
次に、ルーチンはreq.onを使用してイベントを聞き、req(メッセージ)に結合します。そのプロトタイプはEmitter.on(イベント、リスナー)、Reqはイベントを生成するオブジェクトであり、リスニング機能では、現在のリスニング関数に関連付けられたEventeMitterオブジェクトを指します。