Nodejs教程06:處理接收到的GET數據

閱讀更多系列文章請訪問個人GitHub博客,示例代碼請訪問這裏

經常使用請求方式

GET和POST是最經常使用的HTTP請求方法,除此以外還有DELETE、HEAD、OPTIONS、PUT、TRACE等,但都不多用到。html

GET POST
主要用途是獲取數據 主要用途是發送數據
數據放在HTTP請求Header中,經過URL進行傳輸,容量≤32K 數據放在HTTP請求Body中,容量大,一般上限是2G

處理GET數據

咱們能夠使用Nodejs自帶的url和querystring模塊處理接收到的GET數據。git

首先新建一個帶form表單的HTML文件,講輸入的數據提交到服務器地址:github

示例代碼:/lesson06/form_get.htmlbash

<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.jsless

  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)
複製代碼
相關文章
相關標籤/搜索