共计 1356 个字符,预计需要花费 4 分钟才能阅读完成。
打印 req.url,查看请求 url
req.url 可以看到我们 GET 请求的链接以及数据
我们新建一个 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。
// 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】
使用 querystring 模块处理 url 数据
知识点:quertstring
我们可以看到,服务端接收到的 url 数据是 /aaa?username=123&password=qweqwe
,”?” 号后面就是我们再 form 表单中输入的数据,我门可以提取问号后面的字符串,然后用 querystring.parse()
将字符串处理成对象。
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 模块处理 url 数据
知识点:url.parse()
通过 url.parse(req.url, true)
会直接帮我处理 url,第二个参数设置为 true,会帮我们将 form 提交的数据转化成对象,请看图 1.2。
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】
正文完