美文网首页Node.js
Node.js进阶之【4】 : get、post解析数据及读取服

Node.js进阶之【4】 : get、post解析数据及读取服

作者: 岚平果 | 来源:发表于2020-03-18 14:38 被阅读0次

    一、解析get数据

    • 1、建立一个本地服务器【server.js】
    const http = require('http');
    const querystring = require('querystring');
    const urlLib = require('url');
    const fs = require('fs')
    
    var server = http.createServer((req, res) => {
        // get 方式解析数据
        var GET = urlLib.parse(req.url, true);
        var url = GET.pathname;
        const get = GET.query;
    
        var POST = '';
        // post 方式解析数据
        req.on('data', (data) => {
            POST += data;
        })
        req.on('end', () => {
            const post = querystring.parse(POST);
            console.log(url, get,post)
        })
        // readFile 读取服务器文件
        var file_name = './www' + url;
        fs.readFile(file_name, (err, data) => {
            if(err) {
                res.write('404')
            }   else {
                res.write(data)
            }
            res.end();
        })
    })
    server.listen(8080)
    
    • 2、创建一个【form.html】表单
    <!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>
        // 切换数据传送方式,get、post
        <form action="http://localhost:8080/aaa" method="get">
            姓名:<input type="text" name="user" /> <br>
            密码:<input type="text" name="pass" /> <br>
            文本:
            <textarea name="text" id="" cols="30" rows="10"></textarea><br>
            <input type="submit" value="提交">
        </form>
    </body>
    </html>
    
    • 3 、启动服务器【node server.js】,客户端首先通过【get】方式发送数据


      image.png
    • 4 、更改传送数据方式为【post】


      image.png
    • 5、现在向服务器访问一个正确的文件


      image.png
    • 6 、现在向服务器访问一个错误的文件


      image.png

    相关文章

      网友评论

        本文标题:Node.js进阶之【4】 : get、post解析数据及读取服

        本文链接:https://www.haomeiwen.com/subject/ejnqyhtx.html