脚本宝典收集整理的这篇文章主要介绍了【node】模块解析之 http,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
菜鸟教程上写的很通俗易懂,拿过来:
如果我们使用PHP来编写后端的代码时,需要apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和PHP-CGI。
从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要 PHP 来处理。
不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器。
举个例子,在写php的时候我们只要处理好逻辑就可以了,php执行遇到错误的时候浏览器会抛出。
可是在写nodejs的时候你会发现神奇的现象:
- nodejs有一个地方代码写错,程序直接崩了,浏览器直接500!!
- 程序没有处理好输出,直接就挂在那了!!
这是最常见的现象,因为nodejs不依赖web服务器,它自身处理请求和响应
1. 解析 hollow world
VAR http = require('http');
http.createServer(function (request, response) {
response.wrITeHead(200, {'Content-tyPE': 'text/plain'});
response.end('Hello Worldn');
}).listen(8080);
console.LOG('Server running at http://127.0.0.1:8080/');
代码中createServer
是一个快捷方法,还原之后是这样的:
var http = require("http");
var server = new http.Server();
server.on("request",function(req, res){
res.writeHead(200,{
"content-type":"text/plain"
});
res.write("hello Worldn");
res.end();
});
server.listen(8080);
http模块中封装了一个Http服务器和一个Http客户端,分别对应http.Server()
和http.request()
。前者的作用是创建一个http服务器,后者的作用是对http服务器发起请求
所以createServer方法就是实例化一个 http.Server() 服务器,监听request事件,然后发出响应。同时监听8080端口
2. http.Server
http.Server是一个基于事件的服务器(事件驱动就是这个意思),常用的监听事件有
-
request
:监听客户端请求,在回调函数中返回两个参数,req 和 res,分别代表请求和响应
-
connection
:监听TCP连接建立,在回调函数中返回参数 socket
-
close
:监听服务器关闭
我们常用的就是request
事件,socket编程一般会用socket.io。
还要说一个关键的参数,就是request事件回调函数的res
,负责响应客户端。如果没有用res处理响应,就会发生开头提到的那种现象,请求会挂起。介绍它的3个成员函数:
-
res.writeHead(statusCode,[heasers])
:发送客户端响应头
-
res.write(data,[encoding])
:发送客户端响应体(内容),可调用多次
-
res.end()
:结束响应,否则请求会挂起
基本用法就这么多,入门必备
以上是脚本宝典为你收集整理的【node】模块解析之 http全部内容,希望文章能够帮你解决【node】模块解析之 http所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。