サーバーブラウザにパラメータを渡し、アドレスバーは、最も一般的に使用されるパラメータ渡し(取得)、およびフォーム送信(ポスト)であります
私は大量の参加を取得してみましょう、それが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}ページを示すことになります
この後、私たちは、サーバー側のパラメータ値を取得するには、パラメータ値に対応するページのコンテンツに戻ることができます!!!