之前介绍了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加载与移动适配优化
浅谈Javascript中的Label语句
黑客如何通过漏洞一步步攻陷网站服务器?
制作网页的网站有哪些,电脑上怎么做网页?
如何快速搭建个人网站并优化SEO?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何零成本快速生成个人自助网站?
建站之星如何快速生成多端适配网站?
建站主机功能解析:服务器选择与快速搭建指南
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何通过免费商城建站系统源码自定义网站主题与功能?
Swift中switch语句区间和元组模式匹配
如何选择服务器才能高效搭建专属网站?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
如何在阿里云香港服务器快速搭建网站?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
建站之星如何防范黑客攻击与数据泄露?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
网站制作话术技巧,网站推广做的好怎么话术?
如何在IIS管理器中快速创建并配置网站?
如何注册花生壳免费域名并搭建个人网站?
Bpmn 2.0的XML文件怎么画流程图
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
临沂网站制作公司有哪些,临沂第四中学官网?
如何在新浪SAE免费搭建个人博客?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何高效完成自助建站业务培训?
如何在云虚拟主机上快速搭建个人网站?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
建站之星安装后如何自定义网站颜色与字体?
如何快速查询域名建站关键信息?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何获取开源自助建站系统免费下载链接?
如何通过网站建站时间优化SEO与用户体验?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
为什么Go需要go mod文件_Go go mod文件作用说明
如何选择美橙互联多站合一建站方案?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
如何获取上海专业网站定制建站电话?
如何在局域网内绑定自建网站域名?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
建站之星如何通过成品分离优化网站效率?
*请认真填写需求信息,我们会在24小时内与您取得联系。