全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Nodejs之http的表单提交

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

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中运行服务器,得到页面是这样的:


提交数据后:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Nodejs  # http  # 表单  # JSP之表单提交get和post的区别详解及实例  # 基于JavaScript实现带数据验证和复选框的表单提交  # JavaScript阻止表单提交方法(附代码)  # 使用AngularJS对表单提交内容进行验证的操作方法  # JS表单提交中onsubmit事件return的作用详解  # 都在  # 的是  # 绑定  # 完成后  # 是这样  # 并对  # 一书  # 需要注意  # 要使  # 服务端  # 大家多多  # 时需  # 再对  # 客户端  # var  # require  # brush  # action  # post 


相关文章: 如何配置支付宝与微信支付功能?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  再谈Python中的字符串与字符编码(推荐)  名字制作网站免费,所有小说网站的名字?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  宁波自助建站系统如何快速打造专业企业网站?  制作企业网站建设方案,怎样建设一个公司网站?  建站之星代理商如何保障技术支持与售后服务?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  建站之星2.7模板:企业网站建设与h5定制设计专题  网站制作公司,橙子建站是合法的吗?  如何在Windows环境下新建FTP站点并设置权限?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何在阿里云部署织梦网站?  如何快速搭建高效可靠的建站解决方案?  婚礼视频制作网站,学习*后期制作的网站有哪些?  如何注册花生壳免费域名并搭建个人网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  建站之星在线版空间:自助建站+智能模板一键生成方案  湖北网站制作公司有哪些,湖北清能集团官网?  如何挑选高效建站主机与优质域名?  如何在自有机房高效搭建专业网站?  建站之星安装步骤有哪些常见问题?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  制作旅游网站html,怎样注册旅游网站?  如何用虚拟主机快速搭建网站?详细步骤解析  Android自定义listview布局实现上拉加载下拉刷新功能  三星网站视频制作教程下载,三星w23网页如何全屏?  如何选择适合PHP云建站的开源框架?  建站之星展会模版如何一键下载生成?  如何高效完成独享虚拟主机建站?  实例解析Array和String方法  如何用腾讯建站主机快速创建免费网站?  如何在万网开始建站?分步指南解析  用v-html解决Vue.js渲染中html标签不被解析的问题  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  linux top下的 minerd 木马清除方法  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何访问已购建站主机并解决登录问题?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  如何续费美橙建站之星域名及服务?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何快速搭建安全的FTP站点?  如何用花生壳三步快速搭建专属网站?  如何零成本快速生成个人自助网站?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。