一、GET申请

  1. 获取数据;
  2. 数据放在url中进行传输;
  3. 容量小:<32K;

思路:

  • 创立html表单,前端提交信息给服务端(url?username=xxx&password=xxx);
  • 引入url模块,通过url.parse(request.url, true)获取json数据。

demo1.html:

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>演示1</title>    </head>    <body>        <form action="http://localhost:8088/login" method="GET">            用户名:<input type="text" name="username"><br>            密  码:<input type="password" name="password"><br>            <input type="submit" value="提交">        </form>    </body></html>

index.js:

let http = require('http')let url = require('url')http.createServer((req, res) => {    let { pathname, query } = url.parse(req.url, true)    console.log(pathname, query);}).listen(8088)

运行命令:

 node index

关上页面,在表单输出数据,输入后果:

/login[Object: null prototype] { username: 'admin', password: '123456' }

二、POST申请

  1. 数据放在body中进行传输;
  2. 容量大:<2G;

思路:引入querystring模块,创立数组获取buffer多段数据并用concat拼接,querystring.parse(data)获取json。

demo1.html:

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>演示1</title>    </head>    <body>        <form action="http://localhost:8088/login" method="POST">            用户名:<input type="text" name="username"><br>            密  码:<input type="password" name="password"><br>            <input type="submit" value="提交">        </form>    </body></html>

index.js:

let http = require('http')let querystring = require('querystring')http.createServer((req, res) => {    let result = [];    //Node.js中定义了Buffer类,专门用来寄存二进制数据的缓存区    req.on('data', (buffer) => {        result.push(buffer);    })    req.on('end', () => {        // 因为是成段获取,所以要拼接起来        let data = Buffer.concat(result).toString() // 这种不能用于图片视频等文件        console.log(querystring.parse(data))    })}).listen(8088)

运行命令:

 node index

关上页面,在表单输出数据,输入后果:

[Object: null prototype] { username: 'admin', password: '123456' }