从零开始学习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模拟的QQ面板上的多级可展开的菜单
Oct 10 Javascript
JS日期和时间选择控件升级版(自写)
Aug 02 Javascript
web网页按比例显示图片实现原理及js代码
Aug 09 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
Jul 06 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
jquery实现全选功能效果的实现代码
May 05 Javascript
JSON 必知必会 观后记
Oct 27 Javascript
js正则表达式验证表单【完整版】
Mar 06 Javascript
前端自动化开发之Node.js的环境搭建教程
Apr 01 Javascript
Vue项目分环境打包的实现步骤
Apr 02 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
uniapp,微信小程序中使用 MQTT的问题
Jul 11 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
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python文件和流(实例讲解)
2017/09/12 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
基于python 凸包问题的解决
2020/04/16 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
J2EE面试题
2016/03/14 面试题
人力资源主管职责范本
2014/03/05 职场文书
法律进学校实施方案
2014/03/15 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
出差报告范文
2014/11/06 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
2015年计划生育责任书
2015/05/08 职场文书
唐山大地震的观后感
2015/06/05 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL
Go语言基础map用法及示例详解
2021/11/17 Golang