Node.js

Node.js进阶之【2】 : 解析客户端GET方式传过

2020-03-17  本文已影响0人  岚平果

备注:客户端通过GET发送数据给服务端,数据大小需【<32k】,而通过POST传送数据给服务器,限制数据大小在【1G】以内

一、【手动解析】解析客户端发送到服务器的数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    // action后面的内容表示表单要提交到哪,method表示表单要以什么方式提交,我们这节以get方式提交数据到服务器
    <form action="http://localhost:8082/aaa" method="get">
        <p>姓名:<input type="text" name="name"></p>
        <p>密码:<input type="password"  name="pass"></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>
const http = require('http');
var server = http.createServer((req, res) => {
    if(req.url !== '/favicon.ico') {
        let str = req.url.substring(req.url.indexOf('?') + 1);      // name=xxw&pass=1234567
        let arr = str.split('&');                                   // [ 'name=xxw', 'pass=1234567' ]
        let obj = {};
        arr.forEach(ele => {
            let arr2 = [];                                          // [ 'name', 'xxw' ][ 'pass', '1234567' ]
            arr2 = ele.split('=');
            obj[arr2[0]] = arr2[1]
        })
        console.log(obj)                                            // { name: 'xxw', pass: '1234567' }
    }
    res.end();
})
server.listen(8082)

二、【querystring.parse】解析客户端发送到服务器的数据

const querystring = require('querystring')
let obj = querystring.parse('name=xxl&age=12&sex=girl')
console.log(obj)

三、【url.parse】解析客户端发送到服务器的数据

// urlLib.parse第二个参数为true,可以把query直接解析成对象 { name: 'xxk', pass: '123456' }
var obj = urlLib.parse('http://localhost:8082/aaa?name=xxk&pass=123456', true)
console.log(obj)
} 
var url = obj.pathname;
var data = obj.query;
console.log(url, data)  //     /aaa     { name: 'xxk', pass: '123456' }
上一篇 下一篇

猜你喜欢

热点阅读