从零开始学习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 字符串连接[性能比较]
May 10 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
Nov 30 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
Aug 01 Javascript
jquery获取复选框被选中的值
Apr 10 Javascript
js对象的复制继承实例
Jan 10 Javascript
学习JavaScript事件流和事件处理程序
Jan 25 Javascript
javascript每日必学之基础入门
Feb 16 Javascript
jQuery实现三级菜单的代码
May 09 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
Aug 23 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
Vue动态组件与异步组件实例详解
Feb 23 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
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
php调用C代码的实现方法
2014/03/11 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
实例讲解php数据访问
2016/05/09 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
JsRender for object语法简介
2014/10/31 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
使用pandas读取文件的实现
2019/07/31 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
网页设计个人找工作求职信
2013/11/28 职场文书
化学实验员岗位职责
2013/12/28 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
通知书大全
2015/04/27 职场文书
python 使用pandas读取csv文件的方法
2022/12/24 Python