从零开始学习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 05 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
关于图片的预加载过程中隐藏未知的
Dec 19 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
Aug 02 Javascript
javascript文件中引用依赖的js文件的方法
Mar 17 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
Apr 16 Javascript
jquery form 加载数据示例
Apr 21 Javascript
jquery插件EasyUI中form表单提交实例分享
Jan 11 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
js 函数式编程学习笔记
Mar 25 Javascript
js自定义input文件上传样式
Oct 26 Javascript
手把手教你如何编译打包video.js
Dec 09 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
类的另类用法--数据的封装
2006/10/09 PHP
php SQL Injection with MySQL
2011/02/27 PHP
PHP 转义使用详解
2013/07/15 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
js如何打印object对象
2015/10/16 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
详解Python的Lambda函数与排序
2016/10/25 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
ET Mall东森购物网:东森严选
2017/03/06 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
灵泰克Java笔试题
2016/01/09 面试题
廉洁自律承诺书
2014/03/27 职场文书
一份文言文检讨书
2014/09/13 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
院系推荐意见
2015/06/05 职场文书
律政俏佳人观后感
2015/06/09 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏