从零开始学习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 相关文章推荐
js程序中美元符号$是什么
Jun 05 Javascript
javascript iframe内的函数调用实现方法
Jul 19 Javascript
json数据与字符串的相互转化示例
Sep 18 Javascript
基于JavaScript实现生成名片、链接等二维码
Sep 20 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
AngularJS入门教程之服务(Service)
Jul 27 Javascript
详解Angular的数据显示优化处理
Dec 26 Javascript
荐书|您有一份JavaScript书单待签收
Jul 21 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
Sep 04 Javascript
vue项目中仿element-ui弹框效果的实例代码
Apr 22 Javascript
Js代码中的span拼接问题解决
Nov 22 Javascript
JS如何操作DOM基于表格动态展示数据
Oct 15 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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
利用python实现数据分析
2017/01/11 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Python中的asyncio代码详解
2019/06/10 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
Python远程linux执行命令实现
2020/11/11 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
外贸业务员岗位职责
2013/11/24 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
档案保密承诺书
2014/06/03 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL