主要核心模块包括http、fs、url、querystring
1.http模块
使用http模块只需要在文件中通过require(‘http’)引入即可。传统的HTPP服务器会由Apache、Nginx、IIS之类的软件来担任,但是Node.js并不需要。Node.js的http模块本身就可以构建服务器,而且性能非常可靠。
简单的node.js服务器
const http = require('http');
const server = http.createServer(function(req, res) {
res.writeHead(200,{
'content-type': 'text/plain'
});
res.end('Hello, Node.js!');
});
server.listen(3000, function() {
console.log('listening port 3000');
});
上面的req和res分别是http.IncomingMessage和 http.ServerResponse的实例
http.Server的事件主要有:
- request:最常用的事件,当客户端请求到来时,该事件被触发,提供req和res两个参数,表示请求和响应信息。
- connection:当TCP连接建立时,该事件被触发,提供一个socket参数,是net.Socket的实例。
- close:当服务器关闭时,触发事件(注意不是在用户断开连接时)。
http.IncomingMessage是HTTP请求的信息,提供了以下3个事件:
- data:当请求体数据到来时该事件被触发。该事件提供一个chunk参数,表示接受的数据。
- end:当请求体数据传输完毕时该事件被触发,此后不会再有数据。
- close:用户当前请求结束时,该事件被触发。
http.IncomingMessage提供的主要属性有:
- method:HTTP请求的方法,如GET。
- headers:HTTP请求头。
- url:请求路径。
- httpVersion:HTTP协议的版本。