Nodejs教程06:處理接收到的GET資料

LeeChen發表於2019-02-27

閱讀更多系列文章請訪問我的GitHub部落格,示例程式碼請訪問這裡

常用請求方式

GET和POST是最常用的HTTP請求方法,除此之外還有DELETE、HEAD、OPTIONS、PUT、TRACE等,但都很少用到。

GET POST
主要用途是獲取資料 主要用途是傳送資料
資料放在HTTP請求Header中,通過URL進行傳輸,容量≤32K 資料放在HTTP請求Body中,容量大,通常上限是2G

處理GET資料

我們可以使用Nodejs自帶的url和querystring模組處理接收到的GET資料。

首先新建一個帶form表單的HTML檔案,講輸入的資料提交到伺服器地址:

示例程式碼:/lesson06/form_get.html

<form action="http://localhost:8080/login" method="get">
  使用者:<input type="text" name="username"><br/>
  密碼:<input type="text" name="password"><br/>
  <input type="submit" value="提交">
</form>
複製程式碼

服務端在接收到請求資料時,可以有3種方式處理資料:

示例程式碼:/lesson06/server.js

  1. 將請求資料中的req.url進行字串切割,再用querystring模組獲取資料。
const [ pathname, queryStr ] = req.url.split('?')
const query = querystring.parse(queryStr)
console.log(pathname, query)
複製程式碼
  1. 用URL建構函式例項化一個url物件,從中獲取到pathname和search值,再用querystring模組解析search資料。
const url = new URL(`http://localhost:8080${req.url}`)
const { pathname, search } = url
const query = querystring.parse(search.substring(1, url.search.length))
console.log(pathname, query)
複製程式碼
  1. 使用url模組的parse方法,直接解析出資料。
// parse方法第二個引數若傳true,則會直接將解析出的query值轉為物件形式,否則它只是字串形式
const { pathname, query } = url.parse(req.url, true)
console.log(pathname, query)
複製程式碼

相關文章