从零开始学习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 比较时间大小的代码
Apr 24 Javascript
浏览器兼容console对象的简要解决方案分享
Oct 24 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
Jan 06 Javascript
jquery中ajax使用error调试错误的方法
Feb 08 Javascript
jQuery实现为控件添加水印文字效果(附源码)
Dec 02 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
Aug 03 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
Aug 11 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
解决webpack+Vue引入iView找不到字体文件的问题
Sep 28 Javascript
layui layer select 选择被遮挡的解决方法
Sep 21 Javascript
Vue-CLI与Vuex使用方法实例分析
Jan 06 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
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
php中函数的形参与实参的问题说明
2010/09/01 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
Python使用Scrapy爬取妹子图
2015/05/28 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
超简单使用Python换脸实例
2019/03/27 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
应届生求职推荐信
2013/10/28 职场文书
学生党员思想汇报
2013/12/28 职场文书
企业标语大全
2014/07/01 职场文书
设计师求职信
2014/07/01 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
北京故宫的导游词
2015/01/31 职场文书
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python