关于javascript:NodeJS学习笔记之Node中的数据交互

44次阅读

共计 1492 个字符,预计需要花费 4 分钟才能阅读完成。

一、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'}

正文完
 0