从零开始学习Node.js系列教程一:http get和post用法分析


Posted in Javascript onApril 13, 2017

本文实例讲述了Node.js中http get和post用法。分享给大家供大家参考,具体如下:

httpserverrequestget.js

/*
获取GET请求内容
由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。
node.js中url模块中的parse函数提供了这个功能。
 */
var http = require('http');
var url = require('url');
var util = require('util');
http.createServer(function(req, res){
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end(util.inspect(url.parse(req.url, true)));
}).listen(3000);
//在浏览器中访问http://localhost:3000/user?name=joey&email=joey@joey.com 然后查看返回结果

从零开始学习Node.js系列教程一:http get和post用法分析

httpserverrequestpost.js

/*
POST请求的内容全部的都在请求体中,http.ServerRequest并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作,
比如上传文件,而很多时候我们可能并不需要理会请求体的内容,恶意的POST请求会大大消耗服务器的资源,所有node.js默认是不会解析请求体的,
当你需要的时候,需要手动来做。
 */
var http = require('http');
var querystring = require('querystring');
var util = require('util');
http.createServer(function(req, res){
  var post = '';   //定义了一个post变量,用于暂存请求体的信息
  req.on('data', function(chunk){  //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
    post += chunk;
  });
  req.on('end', function(){  //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
    post = querystring.parse(post);
    res.end(util.inspect(post));
  });
}).listen(3000);

注意:不要在真正的生产应用中使用上面这种简单的方法来获取POST请求,因为它有严重的效率问题和安全问题,这只是一个帮你理解的示例。

知识扩展:util.inherits继承

/*
 util.inherits
 定义了一个基础对象Base和一个继承自Base的Sub,Base有三个在构造函数内定义的属性和一个原型中定义的函数,通过util.inherits实现继承
 注意,Sub仅仅继承了Base在原型中定义的函数,而构造函数内部创造的base属性和sayHello函数都没有被Sub继承。
 */
var util = require('util');
function Base(){
  this.name = 'base';
  this.base = 1991;
  this.sayHello = function(){
    console.log('Hello ' + this.name);
  };
}
Base.prototype.showName = function(){
  console.log(this.name);
};
function Sub(){
  this.name = 'sub';
}
util.inherits(Sub, Base);
var objBase = new Base();
objBase.showName();
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objSub.showName();
//objSub.sayHello();
console.log(objSub);

希望本文所述对大家nodejs程序设计有所帮助。

Javascript 相关文章推荐
JavaScript如何从listbox里同时删除多个项目
Oct 12 Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Dec 14 Javascript
VueJs组件prop验证简单介绍
Sep 12 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
Vue实现自定义下拉菜单功能
Jul 16 Javascript
vue项目上传Github预览的实现示例
Nov 06 Javascript
JavaScript enum枚举类型定义及使用方法
May 15 Javascript
javascript解析json格式的数据方法详解
Aug 07 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
JavaScript实现网页下拉菜单效果
Nov 20 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
Apr 13 #Javascript
JavaScript数据结构之二叉树的计数算法示例
Apr 13 #Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 #Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 #Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 #jQuery
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 #Javascript
vue如何引用其他组件(css和js)
Apr 13 #Javascript
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
js获取网页高度(详细整理)
2012/12/28 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python异常学习笔记
2015/02/03 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
opencv与numpy的图像基本操作
2019/03/08 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
理工学院学生自我鉴定
2014/02/23 职场文书
导游个人求职信范文
2014/03/23 职场文书
党代会心得体会
2014/09/04 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
Python 阶乘详解
2021/10/05 Python
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
Ajax实现异步加载数据
2021/11/17 Javascript