从零开始学习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 相关文章推荐
jquery中get,post和ajax方法的使用小结
Feb 04 Javascript
js重写alert控件(适合学习js的新手朋友)
Aug 24 Javascript
jQuery Validation PlugIn的使用方法详解
Dec 18 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
Mar 07 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
Three.js开发实现3D地图的实践过程总结
Nov 20 Javascript
jQuery+CSS实现的table表格行列转置功能示例
Jan 08 jQuery
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
JS正则表达式封装与使用操作示例
May 15 Javascript
js实现九宫格布局效果
May 28 Javascript
JS如何生成动态列表
Sep 22 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
python定时器使用示例分享
2014/02/16 Python
python更新列表的方法
2015/07/28 Python
python制作一个桌面便签软件
2015/08/09 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
python序列化与数据持久化实例详解
2019/12/20 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
python如何建立全零数组
2020/07/19 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
加拿大的标志性百货公司:Hudson’s Bay(哈得逊湾)
2019/09/03 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
我的求职计划书
2014/01/10 职场文书
七年级历史教学反思
2014/02/05 职场文书
终止合同协议书
2014/04/17 职场文书
先进工作者申报材料
2014/12/23 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
七年级作文之英语老师
2019/10/28 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android