从零开始学习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 相关文章推荐
IE浏览器兼容Firefox的JS脚本的代码
Oct 23 Javascript
jQuery控制输入框只能输入数值的小例子
Mar 20 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
Mar 18 Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 Javascript
javascript实现验证身份证号的有效性并提示
Apr 30 Javascript
jQuery.each使用详解
Jul 07 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
Sep 03 Javascript
微信小程序中如何使用flyio封装网络请求
Jul 03 Javascript
javascript中的this作用域详解
Jul 15 Javascript
JS数组方法reduce的用法实例分析
Mar 03 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 Javascript
Vue实现简单购物车功能
Dec 13 Vue.js
基于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
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
python实现远程控制电脑
2019/05/23 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Python列表list操作相关知识小结
2020/01/29 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
心理健康教育制度
2014/01/27 职场文书
安全协议书
2014/04/23 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
班主任自我评价范文
2015/03/11 职场文书
单位政审意见范文
2015/06/04 职场文书
同学联谊会邀请函
2019/06/24 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
python运算符之与用户交互
2022/04/13 Python