- Node简介
- 第一个node程序
- module(模块系统)
- npm包管理器
- 模块系统优先级
- 认识http内置模块
- url内置模块
- path内置模块
- fs内置模块
- http模块服务端进阶
- http报文浅析
- url模块进阶
- path模块进阶
- querystring模块进阶
- 了解Buffer和Stream
- os模块
- Buffer模块
- Stream模块
- http模块客户端
- Cookie浅析
HTTP模块
常用方法:
http.createServer([requestListener])
创建一个Web服务器
requestListener <Function>
该回调函数中包含两个参数,一个是request请求对象,一个是response响应对象。
该函数返回一个http.server对象。
server.listen([port][,hostname])监听Web服务器
request.url获取路由请求地址
response.writeHead(statusCode[,statusMessage][, headers])
发送一个响应头给请求。 状态码是一个三位数的 HTTP 状态码,如 404。最后一个参数 headers 是响应头。 第二个参数 statusMessage 是可选的状态描述。我们也可以使用 response.setHeader
来完成响应头的设置。
statusCode <number>
- ``statusMessage `
headers <Object>
response.write(chunk[,encoding][, callback])
该方法会发送一块响应主体。
chunk <string>
- ``encoding `
callback <Function>
response.end([data][,encoding][, callback])
该方法会通知服务器,所有响应头和响应主体都已被发送,即服务器将其视为已完成。 每次响应都必须调用response.end() 方法。
data <string>
如果指定了 data,则相当于调用 response.write(data, encoding) 之后再调用 response.end(callback)。
encoding <string>
callback <Function>
常用Content-Type
文件类型 | 对应Type |
---|---|
.gif | image/gif |
.html | text/html |
.jpeg | image/jpeg |
.jpg | image/jpeg或application/x-jpg |
.mp4 | video/mpeg4 |
.mpeg | video/mpg |
.mp3 | audio/mp3 |
.js | text/javascript或application/x-javascript |
.css | text/css |
const http = require('http');
const fs = require('fs');
const ejs = require('ejs');
let server = http.createServer(function(request,response){
let css = /^\/css\/[0-9A-Za-z-_]+\.css$/;
let img = /^\/img\/[0-9A-Za-z-_]+\.jpg|.png$/;
if(request.url === '/'){
fs.readFile('./views/index.ejs',function(err,data){
fs.readdir('./public/img',function(err,files){
let index = ejs.render(data.toString(),{img:files});
response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});
response.end(index);
})
});
}else if(css.test(request.url)){
fs.readFile('./public/css/main.css',function(err,data){
response.writeHead(200,{'Content-Type':'text/css;charset=utf-8'});
response.end(data);
});
}else if(img.test(request.url)){
fs.readFile('./public' + request.url,function(err,data){
response.writeHead(200,{'Content-Type':'image/jpg|img.png;charset=utf-8'});
response.end(data);
});
}else{
response.writeHead(404,{'Content-Type':'text/html;charset=utf-8'});
response.end();
}
});
server.listen(1000,'127.0.0.1');