POSTリクエストはデータを送信するために、GETを使用する方法は、httpサーバをnodejs

サーバーブラウザにパラメータを渡し、アドレスバーは、最も一般的に使用されるパラメータ渡し(取得)、およびフォーム送信(ポスト)であります

私は大量の参加を取得してみましょう、それがURLに追いつくためにある?キー=値&キー2 =値2 ......

しかし、前にいくつかのhttpサーバによれば、我々はlocalhostの3000を:?訪問する/テキストA = 1が、サーバーは404ページを返します。

/テキストA = 1:端末がこのrequest.url印刷されますか?

もちろんこれは、ルーティング方法と一致しないことができ、もちろん、ページ404に戻りたいです

まず第一に、私たちはちょうどを取得したいですか?前のパス番号、を取得する方法を探しに行きますか?パラメータの数の後、それは、404ページを返しません。

nodejsを使用すると、URLとパスのパラメータを取得するには、httpサーバのコードの前に変更するには、以下をクリックし、アドレスバーの上に様々な値をとることができ、URLのコアライブラリと特別な契約を結んでいます。

サーバ全体のコードの上にテスト:

api.jsは)何の変化もありません:(します

VaRのサーバーは=( "./サーバー"が必要)。
VaRのルータは=( "./ルータ"が必要)。
VaRのハンドラ=( "./ハンドラ"が必要)。

VaRのハンドル= {}; 

ハンドル[ "/"] = handler.home。
[ハンドル "/ホームを"] = handler.home。
[ハンドル "/レビュー"] = handler.review。
[ハンドル = "/ api_records"] handler.api_recordsと、
[ハンドル "/テキスト"] = handler.textを。

server.startServer(router.route、ハンドル);

server.js :(変更は赤いフォントでマークされた変更される場合があります)

VAR HTTP =( "HTTP"を必要とする);
 VAR =必要とするURL( "URL"); 

VARのstartServer = 関数(ルート、ハンドル){
     VAR onRequest = 関数(リクエスト、レスポンス){
         VARのパス名= url.parse(request.url ).pathname; // に行きますか?zenkakugoのURLパス 
        にconsole.logは(+ "要求を受信" パス名を);
         のparams =(trueにrequest.url、).query url.parse VAR ; //は、URLを取得しますか?第二のパラメータの内容の後にあるブール値、真形式:偽:フォーマットされていない戻り列
        経路(ハンドル、パス名、応答、paramsは); 
        
    } 

    VARのサーバー= http.createServer(onRequest);
     / /最後に、サーバはポートでリッスンしてみましょう 
    server.listen(3000、 "127.0.0.1"); // あなたはまた、2番目のパラメータ127.0.0.1を追加することができますローカルを表す

    (にconsole.logを "ServerがON開始localhostのポート3000"); / / プラスサーバプロンプトを起動
} 

module.exports.startServer =のstartServer。

router.js(変更の対象)

VaRの FSの=は、( "FS"が必要)。

関数経路(ハンドル、パス名、応答、paramsは){ 
    にconsole.log( + "に対するルーティング要求" パス名)。
    もしtypeof演算 [パス名] === '機能'を扱う){ 
        [パス名](応答、ハンドルのparamsを
    } { 
        response.writeHead( 200、{ "コンテンツタイプ": "text / htmlの" })。
        fs.createReadStream(__ dirnameは + "/ 404.html"、 "UTF8" ).pipe(レスポンス); 
    } 
} 

module.exports.route =ルート。

handler.js(変更の対象)

VaRの FSの=は、( "FS"が必要)。

関数家(応答、paramsは){ 
    response.writeHead( 200、{ "コンテンツタイプ": "text / htmlの" })。
    fs.createReadStream(__ dirnameは + "/ index.htmlを"、 "UTF8" ).pipe(レスポンス); 
} 

関数レビュー(応答、paramsは){ 
    response.writeHead( 200、{ "コンテンツタイプ": "text / htmlの" })。
    fs.createReadStream(__ dirnameは + "/がreview.html"、 "UTF8" ).pipe(レスポンス); 
} 

関数api_records(応答、paramsは){ 
    応答。});
    Response.Endの(JSON.stringify(paramsは))。
} 

関数テキスト(応答、paramsは){ 
    response.writeHead( 200、{ "コンテンツタイプ": "text / plainの;のcharset = UTF-8" })。
    Response.Endの( "文本内容" ); 
} 

module.exportsは = { 
    家、
    レビュー、
    api_records、
    テキスト
}

上記のコードは、私たちが入る、のparamsのページへのリターンを取り戻すために、途中でメソッドhandler.jsを要求api_records取得したすべての変更に対処しようとしている:localhostを:3000 / api_records = 1&B = 2?

{1、B:2}ページを示すことになります

この後、私たちは、サーバー側のパラメータ値を取得するには、パラメータ値に対応するページのコンテンツに戻ることができます!

 

おすすめ

転載: www.cnblogs.com/fqh123/p/11258681.html