nodejs--http
http模块主要用到四个方法:
1.Server类
const http = require('http');
let server = new Server();
server.on('request',function(req,res){
res.writeHead(200,{content-type:'text/plain'});
} );
server.listen(3000,function(){});
http.Server 主要的事件有:
~ request,当客户端发送请求时触发,回调函数会有req和res参数。
~ connection,当TCP链接建立时事件触发,提供一个socket参数,是net.socket的实例。这里不作说明。
~ close,当服务器关闭时触发事件。
2.createServer( function(req,res){} );
此方法相当于Server添加了一个request事件。
以上1、2的req是http.IncomingMessage的实例,其提供了三个事件:
~ data:当请求体数据到来时该事件被触发。该事件提供一个chunk作为参数,代表接受到的数据。
~ end:当请求体数据传输完毕时该事件被触发。
~close:用户当前请求结束时触发。
同时,http.IncomingMessage提供的主要属性有:
~ method:http请求的方法。
~ headers:http请求头。
~ url:请求路径。
~ httpVersion:http协议版本。
res是http.ServerResponse的实例,常用方法:
~ res.writeHead(statusCode,[headers])。
~ res.write(data[,encoding]);向请求发送内容。
~ res.end([data]);结束请求。
Server()和createServer()返回的是一个基于事件的http服务器。
3.request()
request()必须end()。
const http = require('http');
http.request(option[,function(res){}]).end();
~ option 为JSON对象,主要有host、port(默认80)、method(默认get)、path(请求的相对路径、默认'/')、headers等。
4.get()
http.get()方法是http.request()的get方法写法,同样需要end();
request()和get()返回的是一个http.ClientRequest类实例。其主要的事件和方法有:
~ response,该事件当收到响应时触发。
~ request.write(chunk[,encoding,callback]),发送请求数据。
~ end(),请求完毕,应该始终指定该方法。
nodejs--http的更多相关文章
- NodeJs之OS
OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...
- NodeJs之Path
Path模块 NodeJs提供的Path模块,使得我们可以对文件路径进行简单的操作. API var path = require('path'); var path_str = '\\Users\\ ...
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- NodeJs在Linux下使用的各种问题
环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...
- NodeJs之child_process
一.child_process child_process是NodeJs的重要模块.帮助我们创建多进程任务,更好的利用了计算机的多核性能. 当然也支持线程间的通信. 二.child_process的几 ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 图片访问实时处理的实现(nodejs和php)
我在访问时光网.网易云音乐等网站时,发现将它们页面中的一些图片URL修改一下就可以得到不同尺寸的图片,于是思考了其实现方案,我的思路是:URL Rewrite + 实时处理 + 缓存,对用户请求的UR ...
- nodejs进阶(4)—读取图片到页面
我们先实现从指定路径读取图片然后输出到页面的功能. 先准备一张图片imgs/dog.jpg. file.js里面继续添加readImg方法,在这里注意读写的时候都需要声明'binary'.(file. ...
- nodejs进阶(3)—路由处理
1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
随机推荐
- Java的输入/输出操作
Java的输入\输出机制 计算机的基本功能就是通过输入输出设备与外部其他设备尽心数据的交互,从其他设备读入数据叫做输入操作,将计算机内的数据写入到其他设备叫做输出操作.可以向计算机发送数据.又可以接受 ...
- 基本算法思想Java实现的详细代码
基本算法思想Java实现的详细代码 算法是一个程序的灵魂,一个好的算法往往可以化繁为简,高效的求解问题.在程序设计中算法是独立于语言的,无论使用哪一种语言都可以使用这些算法,本文笔者将以Java语言为 ...
- Java实现队列结构的详细代码
一.什么是队列结构 一种线性结构,具有特殊的运算法则[只能在一端(队头)删除,在另一端(队尾)插入]. 分类: 顺序队列结构 链式队列结构 基本操作: 入队列 出队列 二.准备数据 static fi ...
- solidity语言9
输入参数 pragma solidity ^0.4.16; contract Simple { function taker(uint _a, uint _b) public pure { // do ...
- koa2获取用户ip
调用下面方法即可获取 // koa2 中 req 为 ctx.req const getUserIp = (req) => { return req.headers['x-forwarded-f ...
- XPS 13 9360安装ubuntu 18
XPS 13 9360安装ubuntu 18 标签(空格分隔): Linux 操作系统 1. 雷电口驱动bug 提示更新雷电口驱动bug(thunderbolt nvm for xps noteboo ...
- gridview导出exe处理时遇到RegisterForEventValidation can only be called during Render();错误
如题,今天在利用GridView作execl导出时,遇到RegisterForEventValidation can only be called during Render();问题.根据网上找到的 ...
- 小故事学设计模式之Observer : (三) 老婆帮忙订机票
(IT的事就是过场多,过场多了就容易忘,所以我们不妨看一个记一个,这也是一个办法,顺便还能跟同行们交流一下) 要和老婆一起回老家了, 成都离我们安徽太远, 两个人飞一下过去就要花掉近三千块, 于是我 ...
- csu 1947 三分
题意: 长者对小明施加了膜法,使得小明每天起床就像马丁的早晨一样. 今天小明早上6点40醒来后发现自己变成了一名高中生,这时马上就要做早操了,小明连忙爬起来 他看到操场密密麻麻的人,突然灵光一闪想到了 ...
- Spring 声明式事务管理方式
声明式事务管理,基于AOP对目标代理,添加环绕通知,比编码方案优势,不具有侵入式,不需要修改原来的代码. 1.基于XML配置的声明式事务管理方案(案例) 接口Service public i ...