node.js处理前端提交的GET请求


Posted in Javascript onAugust 30, 2019

前言:AJAX的盛行,使得浏览器与服务器之间的交互越来越强大,我们需要通过 HTTP 通信,并从中提取出请求的 URL 以及 GET/POST 参数。随后需要根据这些数据来执行相应的操作,从而实现前后端交互。 

一、获取GET请求流程

1、首先和以前一样,在server.js同目录下创建一个act文件夹,并在里面创建一个index1.html文件夹。index1.html代码为:

node.js处理前端提交的GET请求

<body>
<a href="index2.html" style="display:block; width:500px; height:300px; background:pink;"></a>
<form method="get" action="/get" style="padding:20px;"> <!-- method:提交方式是get,提交地址是/get -->
 名字:<input type="text" name="name"/><br />
 年龄:<input type="text" name="age" /><br />
 <input type="submit" value="提交"/>
</form>
</body>

2、先上server.js代码

var http = require('http');
var path = require('path');
var fs = require('fs');
var url = require('url');
 
//路由
var routes = {
 '/get':function(req,res){
 res.setHeader("Content-Type","text/plain; charset=utf-8");
 var name = req.query.name;
 var age = req.query.age;
 res.end('名字是:'+ name + ' 年龄是:'+age);
 //res.end( JSON.stringify(req.query)); 
 }
}
 
var server = http.createServer(function(req,res){
 
 var pathObj = url.parse(req.url, true);
 
 //新添加的处理路由的代码
 var handleFn = routes[pathObj.pathname];
 if(handleFn){
 req.query = pathObj.query; //获取get方式提交的数据
 handleFn(req, res); 
 }else{ //如果找不到字段,就查找静态文件
 var staticPath = path.join(__dirname,'act'); 
 var filePath = path.join(staticPath,pathObj.pathname);
 fs.readFile(filePath,'binary',function(err,fileContent){
 if(err){
 res.writeHead(404,"Not Found");
 res.end('<h1>404 Not Found!</h1>') 
 }else{
 res.writeHead(200,'ok');
 res.write(fileContent,'binary');
 res.end(); 
 }
 });
 }
});
 
server.listen(8080);
console.log('服务器已打开, 可以运行 http://localhost:8080');

解析代码 : 如果看过我前面写的"搭建静态服务器"的朋友应该就知道了,新增的代码就这几行。这样就简单了。

①、首先是创建个routes对象。然后在routes里面创建一个字段名为‘/get'的方法,用于稍后处理GET提交方式提交过来的数据。后续的操作也是在这里,例如:传数据给其他静态页面,或把数据存储到数据库,等等。

var routes = {
 '/get':function(req,res){
 res.setHeader("Content-Type","text/plain; charset=utf-8");
 var name = req.query.name;
 var age = req.query.age;
 res.end('名字是:'+ name + ' 年龄是:'+age);
 //res.end( JSON.stringify(req.query)); 
 }
}

②、首先通过pathObj.patnname获取到请求链接的url。然后在routes找是否存在这个“字段”,如果有,该字段的方法就赋值了给handleFn。最后通过pathObj.query获取到从get方式提交过来的数据,并执行该方法。

//新添加的处理路由的代码
 var handleFn = routes[pathObj.pathname];
 if(handleFn){
 req.query = pathObj.query; //获取get方式提交的数据
 handleFn(req, res); 
 }

3、运行服务器,并在浏览器中打开 http://localhost:8080/index1.html

node.js处理前端提交的GET请求

点击提交就会跳转到/get页面中了。

node.js处理前端提交的GET请求

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

Javascript 相关文章推荐
通过length属性判断jquery对象是否存在
Oct 18 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
Dec 19 Javascript
JQuery实现简单的图片滑动切换特效
Nov 22 Javascript
jQuery实现伪分页的方法分享
Feb 17 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
基于twbsPagination.js分页插件使用心得(分享)
Oct 21 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
Sep 04 Javascript
微信 jssdk 签名错误invalid signature的解决方法
Jan 14 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
Feb 02 Javascript
通过JS深度判断两个对象字段相同
Jun 14 Javascript
微信小程序封装多张图片上传api代码实例
Dec 30 Javascript
Node.js系列之连接DB的方法(3)
Aug 30 #Javascript
Node.js系列之发起get/post请求(2)
Aug 30 #Javascript
Node.js系列之安装配置与基本使用(1)
Aug 30 #Javascript
微信小程序实现写入读取缓存详解
Aug 30 #Javascript
VUE 自定义组件模板的方法详解
Aug 30 #Javascript
Jquery动态列功能完整实例
Aug 30 #jQuery
vue 兄弟组件的信息传递的方法实例详解
Aug 30 #Javascript
You might like
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP中设置时区方法小结
2012/06/03 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
php处理复杂xml数据示例
2016/07/11 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
材料物理专业大学毕业生求职信
2013/10/15 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
承诺书模板大全
2015/05/04 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
荒岛余生观后感
2015/06/09 职场文书
办公用品管理制度
2015/08/04 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书