从零开始学习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 相关文章推荐
动态加载iframe
Jun 16 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
js获取字符串字节数方法小结
Jun 09 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 Javascript
JavaScript中字符串的常用操作方法及特殊字符
Mar 18 Javascript
浅析java线程中断的办法
Jul 29 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
Aug 20 Javascript
React中Ref 的使用方法详解
Apr 28 Javascript
基于vue 动态菜单 刷新空白问题的解决
Aug 06 Javascript
vue中的可拖拽宽度div的实现示例
Apr 08 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
上传多个文件的PHP脚本
2006/11/26 PHP
php 常用类整理
2009/12/23 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
jQuery 表格工具集
2010/04/25 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python优先队列实现方法示例
2017/09/21 Python
Python实现按中文排序的方法示例
2018/04/25 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
Python如何使用函数做字典的值
2019/11/30 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
财会自我鉴定范文
2013/12/27 职场文书
工程招投标邀请书
2014/01/26 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
React配置子路由的实现
2021/06/03 Javascript