req.url 能夠看到咱們GET請求的連接以及數據html
咱們新建一個html,寫一個簡單的form表單,用get方式提交請求微信
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="http://127.0.0.1:8081/aaa" method="get"> 用戶:<input type="text" name="username" /> <br> 密碼:<input type="password" name="password" /> <br> <input type="submit" value="提交"> </form> </body> </html>
打開html文件,輸入帳號密碼,在服務端打印 req.url 數據,請看圖1.1。ui
// 4 .js const http = require('http') let server = http.createServer(function(req, res){ console.log(req.url) // 打印請求 url ->/aaa?username=123&password=qweqwe }) server.listen(8081)
【圖1.1】url
知識點:quertstring
spa
咱們能夠看到,服務端接收到的url數據是 /aaa?username=123&password=qweqwe
,"?"號後面就是咱們再form表單中輸入的數據,我門能夠提取問號後面的字符串,而後用 querystring.parse()
將字符串處理成對象。code
const http = require('http') const querystring = require('querystring') let server = http.createServer(function(req, res){ let [url, query] = req.url.split('?'); // url->'/aaa', query->'username=123&password=qweqwe' let get = querystring.parse(query); // { username: '123', password: 'qweqwe' } }) server.listen(8081)
知識點:url.parse()
經過url.parse(req.url, true)
會直接幫我處理url,第二個參數設置爲true,會幫咱們將form提交的數據轉化成對象,請看圖1.2。orm
const http = require('http') const url = require('url') let server = http.createServer(function(req, res){ let result = url.parse(req.url, true) console.log(result) }) server.listen(8081)
【圖1.2】server