node实现表单信息

先创建一个表单标签(form.html):
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="log" method="post">
        用户名:<input type="text" name="username">
        密码:<input type="password" name="pass">
        <input type="submit" value="提交">
    </form>
</body>
</html>
利用node.js打开:

先建立http连接

对写好的表单html文件进行静态资源加载:fs.readFile('html文件',(err,data)=>{})

在填写表单后,再点击提交后,就进入新url地址中,再进行if判断地址

后获取post请求信息:

  req.addListener('data',chun=>{})

  req.addListener('end',chun=>{})

    其中需要用到:let.obj=qs.parse(资源名);(将查询字符串转换为对象形式)

    注意:使用qs时要先要获取querystring模块才能使用

  后打印信息

let http=require('http');
let fs=require('fs');
let qs=require('querystring');//获取querystring模块
let server=http.createServer((req,res)=>{
    let method=req.method;
    let url=req.url;
    if(url=='/form' && method=='GET'){
        fs.readFile('./form.html',(err,data)=>{
            if(err){
                res.write('404');
            }else{
                res.write(data);
            }
            res.end();
        })
    }
    if(url=='/log' && method=='POST'){
        //当表单点击后根据form路径判断
        fs.readFile('log.html',(err,data)=>{
            if(err){
                res.write('404');
            }else{
                res.write(data);
            }
        })
        let data1='';
        req.addListener('data',chun=>{
            data1+=chun;
        })
        req.addListener('end',()=>{
            console.log(data1);//打印的结果为查询字符串
            let obj=qs.parse(data1);//转换为对象
            console.log(obj.username,obj.pass);
        })
        res.end();
    }
})
server.listen(8090);

 

posted @ 2022-07-22 15:06  hollow~  阅读(113)  评论(0)    收藏  举报