Nodejs中怎么实现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">', '<h2>My Form</h2>', '<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中运行服务器,得到页面是这样的:
提交数据后:
关于Nodejs中怎么实现http表单提交问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联网站建设公司行业资讯频道了解更多相关知识。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前名称:Nodejs中怎么实现http表单提交-创新互联
分享URL:https://www.cdcxhl.com/article16/deoddg.html
成都网站建设公司_创新互联,为您提供小程序开发、软件开发、网站建设、静态网站、搜索引擎优化、服务器托管
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联