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)
复制代码
相关文章
相关标签/搜索