首頁  >  文章  >  web前端  >  Nodejs中關於http的表單提交實例

Nodejs中關於http的表單提交實例

零下一度
零下一度原創
2017-07-09 10:15:191102瀏覽

這篇文章主要為大家詳細介紹了Nodejs之http的表單提交,具有一定的參考價值,有興趣的小夥伴們可以參考一下

之前介紹了http模組的請求與回應的過程,也介紹了TCP協定的客戶端與服務端的資料傳輸,http協定是TCP上層協定。這裡創建了一個簡單的web伺服器,並對提交表單資料進行處理,根據了不起的Node.js一書總結。

POST方法提交表單資料

  之前也總結過,向伺服器提交資料需要使用POST方法,GET方法的請求資訊都在查詢字串中,沒有請求體,而POST方法的傳輸的資料都在請求體中,故提交表單資料時需要使用POST方法。

  req是請求訊息,req.url表示請求的位址,當伺服器運行之後,req請求的網址為127.0.0.1:3000,此時req.url為'/',則傳回的是一串表單數據,在表單數據中設定了method是post,action是'/url',表面提交數據的方式是POST,將數據提交的地址為127.0.0.1:3000/ url,而提交之後要獲取新的頁面即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方法中資訊都在請求體中,用req綁定data事件獲取數據,這裡需要注意的是必須得在資料接收完成後再對資料進行操作,即必須綁定end事件監聽請求訊息是否已傳輸完成。

  querystring是查詢字串模組,用於對查詢字串的解析,parse方法將查詢字串解析成一個物件。在git中執行伺服器,得到頁面是這樣的:


提交資料後:

#

以上是Nodejs中關於http的表單提交實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn