从零开始学习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 入门基础学习
Mar 10 Javascript
表单切换,用回车键替换Tab健(不支持IE)
Jul 20 Javascript
深入理解JavaScript系列(13) This? Yes,this!
Jan 18 Javascript
jquery可见性过滤选择器使用示例
Jun 24 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 Javascript
JavaScript学习笔记之内置对象
Jan 22 Javascript
js实现右键菜单功能
Nov 28 Javascript
Vue.js学习之过滤器详解
Jan 22 Javascript
使用NestJS开发Node.js应用的方法
Dec 03 Javascript
微信小程序实现富文本图片宽度自适应的方法
Jan 20 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
Sep 11 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
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
js运动应用实例解析
2015/12/28 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
Python实现计算最小编辑距离
2016/03/17 Python
名片管理系统python版
2018/01/11 Python
python实现多张图片拼接成大图
2019/01/15 Python
python树莓派红外反射传感器
2019/01/21 Python
python with语句的原理与用法详解
2020/03/30 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
Python面试题集
2012/03/08 面试题
班级活动总结格式
2014/08/30 职场文书
优秀党员事迹材料
2014/12/18 职场文书
计划生育工作总结2015
2015/04/03 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
Python基础详解之邮件处理
2021/04/28 Python