Nodejs之http的表单提交

发布时间 - 2026-01-11 02:14:00    点击率:

之前介绍了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 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信小程序 require机制详解及实例代码  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  如何用西部建站助手快速创建专业网站?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  如何用搬瓦工VPS快速搭建个人网站?  nginx修改上传文件大小限制的方法  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  如何用狗爹虚拟主机快速搭建网站?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  用yum安装MySQLdb模块的步骤方法  如何快速生成可下载的建站源码工具?  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel安装步骤详细教程_Laravel环境搭建指南  Laravel如何实现API速率限制?(Rate Limiting教程)  如何有效防御Web建站篡改攻击?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  装修招标网站设计制作流程,装修招标流程?  高端网站建设与定制开发一站式解决方案 中企动力  青岛网站建设如何选择本地服务器?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  教学论文网站制作软件有哪些,写论文用什么软件 ?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel Fortify是什么,和Jetstream有什么关系  如何用景安虚拟主机手机版绑定域名建站?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  香港服务器网站推广:SEO优化与外贸独立站搭建策略  高防服务器租用指南:配置选择与快速部署攻略  Python结构化数据采集_字段抽取解析【教程】  jQuery 常见小例汇总  Laravel如何实现多对多模型关联?(Eloquent教程)  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Python进程池调度策略_任务分发说明【指导】  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何用已有域名快速搭建网站?  如何撰写建站申请书?关键要点有哪些?  香港服务器选型指南:免备案配置与高效建站方案解析