ホームページ >ウェブフロントエンド >jsチュートリアル >Nodejs での http フォーム送信の例

Nodejs での http フォーム送信の例

零下一度
零下一度オリジナル
2017-07-09 10:15:191181ブラウズ

この記事では主にNodejsのhttpフォーム送信について詳しく紹介していますので、興味のある方は参考にしてください

以前紹介したhttpモジュールのリクエストとレスポンスの処理も紹介しています。 http プロトコルは、TCP プロトコルのクライアントとサーバー間のデータ伝送です。ここでは、偉大な Node.js 書籍にまとめられているように、簡単な Web サーバーを作成し、送信されたフォーム データを処理します。

フォームデータを送信するためのPOSTメソッド

サーバーにデータを送信するにはPOSTメソッドの使用が必要であることも以前にまとめました。GETメソッドの

リクエスト情報はすべてクエリstringに含まれています。リクエストボディはなく、POST メソッドを使用します。送信されるデータはリクエストボディに含まれるため、フォームデータを送信する際には POST メソッドを使用する必要があります。

reqはリクエスト情報、req.urlはリクエストされたアドレスを表します。サーバーが実行されている場合、reqによってリクエストされるURLは127.0.0.1:3000です。このとき、req.urlは「/」です。のフォーム データが返されます。フォーム データに設定されているメソッドは post、

action は '/url'、サーフェイスの送信メソッドは POST、データを送信するアドレスは 127.0.0.1:3000/url です。このとき、req.url は「/url」なので、別のページが表示されます。


 //提交表单数据
 var http=require('http');
 var querystring=require('querystring');
 
 var server=http.createServer(function (req,res) {
 //req.url不同则返回的页面不同
 if('/'==req.url){
  res.writeHead(200,{'Content-Type':'text/html'});
  res.write([
  &#39;<form method="post" action="/url">&#39;,
  &#39;<h1>My Form</h1>&#39;,
  &#39;<fieldset>&#39;,
  &#39;<label>Personal Information</label>&#39;,
  &#39;<p>What is your name?</p>&#39;,
  &#39;<input type="text" name="name">&#39;,
  &#39;<button>submit</button>&#39;,
  &#39;</form>&#39;
  ].join(&#39;&#39;));
  res.end();
 }else if(&#39;/url&#39;==req.url&&req.method==&#39;POST&#39;){
  var reqBody=&#39;&#39;;
  req.on(&#39;data&#39;,function (data) {
  reqBody += data;
  });
  req.on(&#39;end&#39;,function () {//用于数据接收完成后再获取
  res.writeHead(200,{&#39;Content-Type&#39;:&#39;text/html&#39;});
  res.write(&#39;you have sent a &#39;+req.method+&#39; request\n&#39;);
  res.write(&#39;<p>Content-Type:&#39;+req.headers[&#39;content-type&#39;]+&#39;</p>&#39;
   +&#39;<p>Data:your name is &#39;+querystring.parse(reqBody).name+&#39;</p>&#39;);
  res.end();
  })
 }else{
  res.writeHead(404);
  res.write(&#39;Not Found&#39;);
  res.end();
 }
 }).listen(3000,function () {
 console.log(&#39;server is listening 3000&#39;);
 });

データを取得するにはPOSTメソッド内の情報がリクエストボディに含まれているため、送信後はリクエストボディを取得する必要があります。ここで、データの受信が完了した後に実行する必要があることを意味します。データを操作するには、リクエスト情報が転送されたかどうかを監視するために終了イベントをバインドする必要があります。


querystring はクエリ文字列を解析するために使用されるクエリ文字列モジュールです。parse メソッドはクエリ文字列をオブジェクトに解析します。 git でサーバーを実行し、次のようなページを取得します:


データを送信した後:


以上がNodejs での http フォーム送信の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。