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 相关文章推荐
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
js动态添加删除,后台取数据(示例代码)
Nov 25 Javascript
jquery实现的鼠标下拉滚动置顶效果
Jul 24 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
JavaScript面试开发常用的知识点总结
Aug 08 Javascript
原JS实现banner图的常用功能
Jun 12 Javascript
原生JS实现的双色球功能示例
Feb 02 Javascript
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
VSCode使用之Vue工程配置eslint
Apr 30 Javascript
JS数组splice操作实例分析
Oct 12 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
小程序实现按下录音松开识别语音
Nov 22 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在不同页面间传递Json数据示例代码
2013/06/08 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
Code:findPosX 和 findPosY
2006/12/20 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
在Python中调用ggplot的三种方法
2015/04/08 Python
Python实现批量压缩图片
2018/01/25 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
美术教师岗位职责
2014/03/18 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis