意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Node.JS中http表单提交的方法及实现是怎样的

来源:恒创科技 编辑:恒创科技编辑部
2024-01-23 19:50:59
本篇内容介绍了“Node.JS中http表单提交的方法及实现是怎样的”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

之前介绍了http模块的请求与响应的过程,也介绍了TCP协议的客户端与服务端的数据传输,http协议是TCP上层协议。这里创建了一个简单的web服务器,并对提交表单数据进行处理,根据了不起的Node.js一书总结。


Node.JS中http表单提交的方法及实现是怎样的

POST方法提交表单数据

  之前也总结过,向服务器提交数据需要使用POST方法,GET方法的请求信息都在查询字符串中,没有请求体,而POST方法的传输的数据都在请求体中,故提交表单数据时需要使用POST方法。
  req是请求信息,req.url表示请求的地址,当服务器运行之后,req请求的网址为127.0.0.1:3000,此时req.url为‘/’,则返回的是一串表单数据,在表单数据中设置了method是post,action是‘/url’,表面提交数据的方式是POST,将数据提交的地址为127.0.0.1:3000/url,而提交之后要获取新的页面即127.0.0.1:3000/url,此时req.url为‘/url’,故显示的另一个页面。

    //提交表单数据
    var http=require('http');
    var querystring=require('querystring');
    
    var server=http.createServer(function (req,res) {
        //req.url不同则返回的页面不同
        if('/'==req.url){
            res.writeHead(200,{'Content-Type':'text/html'});
            res.write([
                '<form method="post" action="/url">',
                '<h1>My Form</h1>',
                '<fieldset>',
                '<label>Personal Information</label>',
                '<p>What is your name?</p>',
                '<input type="text" name="name">',
                '<button>submit</button>',
                '</form>'
            ].join(''));
            res.end();
        }else if('/url'==req.url&&req.method=='POST'){
            var reqBody='';
            req.on('data',function (data) {
                reqBody += data;
            });
            req.on('end',function () {//用于数据接收完成后再获取
                res.writeHead(200,{'Content-Type':'text/html'});
                res.write('you have sent a '+req.method+' request\n');
                res.write('<p>Content-Type:'+req.headers['content-type']+'</p>'
                    +'<p>Data:your name is '+querystring.parse(reqBody).name+'</p>');
                res.end();
            })
        }else{
            res.writeHead(404);
            res.write('Not Found');
            res.end();
        }
    }).listen(3000,function () {
        console.log('server is listening 3000');
    });

  提交之后,需要获取请求信息的请求体,因为POST方法中信息都在请求体中,用req绑定data事件获取数据,这里需要注意的是必须得在数据接收完成后再对数据进行操作,即必须绑定end事件监听请求信息是否传输完成。
  querystring是查询字符串模块,用于对查询字符串的解析,parse方法将查询字符串解析成一个对象。在git中运行服务器,得到页面是这样的:

提交数据后:


“Node.JS中http表单提交的方法及实现是怎样的”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业技术相关的知识可以关注恒创科技网站,小编每天都会为大家更新不同的知识。
上一篇: RabbitMQ高可用架构总结(rabbitmq和kafka的区别) 下一篇: 手机怎么远程登录云服务器?