想要使用Node.js中的http模块创建本地Web服务器
首先我们来了解一下HTTP协议
+ 请求方式(Request Method)
+ GET 请求数据
+ POST 请求数据
+ 请求地址
```bash
app.on('request', (req, res) => {
req.headers // 获取请求报文
req.url // 获取请求地址
req.method // 获取请求方法
});
```
响应报文
1.HTTP状态码
(1)、20请求成功
(2)、404请求的资源没有被找到
(3)、500服务器端错误
(4)、400客户端请求语法有错误
2.内容类型
(1)、text/html
(2)、text/css
(3)、application/javascript
(4)、image/jpeg
(5)、application/json
创建本地Web服务器:
// 用于创建网站服务器的模块
const http = require('http');
// app对象就是网站服务器对象
const app = http.createServer();
// 当与客户端有请求来的时候
app.on('request', (req, res) => {
// 获取请求的方式
// req.method
// 获取请求地址
// req.url
// console.log(req.url);
// 获取请求报文信息
// req.headers
// console.log(req.headers['accept']);
res.writeHead(200, {
'content-type' : 'text/html; charse=utf8'
});
if(req.url == '/index' || req.url == '/'){
res.end('<h2>welocom to homepage</h2>')
}else if(req.url == '/list'){
res.end('welocom to listpage')
}else {
res.end('not found')
}
console.log(req.method);
if(req.method == 'POST'){
res.end('post');
}else if (req.method == 'GEI'){
res.end('get')
}
// res.end('<h2>hello user</h2>');
});
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
实现路由功能:
// 1.引入系统模块http
// 2. 创建网站服务器
// 3. 为网站服务器对象添加请求事件
// 4. 实现路由功能
// 1. 获取客户端的请求方式
// 2. 获取客户端的请求地址
// 5. 监听
const http = require('http');
const url = require('url');
const app = http.createServer();
app.on('request', (req, res) => {
// 获取请求方式
const method = req.method.toLowerCase();
// 获取请求地址
const pathname = url.parse(req.url).pathname;
res.writeHead(200, {
'content-type': 'text/html; charset=utf8'
});
console.log(req.url);
if (method == 'get') {
if (pathname == '/' || pathname == '/index') {
res.end('欢迎来到首页');
} else if (pathname == '/list') {
res.end('欢迎来到列表页');
} else {
res.end('您访问的页面不存在哦亲')
}
} else if (method == 'post') {
}
})
app.listen(3000);
console.log('服务器端启动成功');