全网整合营销服务商

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

免费咨询热线: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优化与外贸独立站搭建策略  如何基于PHP生成高效IDC网络公司建站源码?  企业微网站怎么做,公司网站和公众号有什么区别?  建站之星ASP如何实现CMS高效搭建与安全管理?  建站主机如何安装配置?新手必看操作指南  网站制作壁纸教程视频,电脑壁纸网站?  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何自定义建站之星模板颜色并下载新样式?  ui设计制作网站有哪些,手机UI设计网址吗?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  python的本地网站制作,如何创建本地站点?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何用免费手机建站系统零基础打造专业网站?  Java解压缩zip - 解压缩多个文件或文件夹实例  如何选择域名并搭建高效网站?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  定制建站是什么?如何实现个性化需求?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  建站之星如何一键生成手机站?  北京网站制作的公司有哪些,北京白云观官方网站?  再谈Python中的字符串与字符编码(推荐)  建站之星如何取消后台验证码生成?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  建站之星如何助力企业快速打造五合一网站?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  开心动漫网站制作软件下载,十分开心动画为何停播?  如何将凡科建站内容保存为本地文件?  5种Android数据存储方式汇总  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何破解联通资金短缺导致的基站建设难题?  如何在搬瓦工VPS快速搭建网站?  建站之星安装后如何自定义网站颜色与字体?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  网站制作员失业,怎样查看自己网站的注册者?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  建站之星安装提示数据库无法连接如何解决?  如何在橙子建站中快速调整背景颜色?  网站制作大概多少钱一个,做一个平台网站大概多少钱? 

您的项目需求

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