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 相关文章推荐
根据分辨率不同,调用不同的css文件
Jul 07 Javascript
tbody元素支持嵌套的注意方法
Mar 24 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
Jan 14 Javascript
Jquery遍历节点的方法小集
Jan 22 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
浅谈JavaScript中的分支结构
Jul 01 Javascript
针对JavaScript中this指向的简单理解
Aug 26 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
Dec 28 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
Openlayers3实现车辆轨迹回放功能
Sep 29 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中最简单的字符串匹配算法
2014/12/16 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
教你安装python Django(图文)
2013/11/04 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
python实现超市扫码仪计费
2018/05/30 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
使用python实现多维数据降维操作
2020/02/24 Python
python map比for循环快在哪
2020/09/21 Python
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
国际贸易个人求职信范文
2014/01/04 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js