http
http模块是Nodejs中用于创建和处理HTTP服务器和客户端的核心模块,基于OSI七层模型的应用层
它使得构建基于HTTP协议的应用程序变得更加简单和灵活,例如
- 创建Web服务器:能提供Web应用程序或网站,通过监听特定的端口,服务器可以接收客户端的请求,并生成响应,通过处理不同的路由、请求方法和参数,可以实现自定义的业务逻辑
- 构建RESTful API:可以使用HTTP请求方法(如GET、POST、PUT、DELETE等)和路径来定义API的不同端点,通过解析请求参数、验证身份和权限,以及生成相应的JSON或其他数据格式,可以构建强大的API服务
- 代理服务器:创建代理服务器转发客户端的请求到其他服务器,可用于负载均衡、缓存、安全过滤或跨域请求等场景,通过在代理服务器上添加逻辑,可以对请求和响应进行修改、记录或过滤
- 文件服务器:可以创建一个简单的文件服务器,提供静态文件(如 HTML、CSS、JavaScript、图像等),读取文件并将其作为响应发送给客户端
使用
原生Nodejs创建服务复杂,所以实际开发会使用框架
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| const http = require('node:http') const url = require('node:url')
http.createServer((req, res) => {
const { pathname, query } = url.parse(req.url, true) console.log(pathname, query)
if(req.method === 'POST'){ if(pathname === '/login'){ let data = '' req.on('data', chunk => { data+=chunk })
req.on('end', () => { res.setHeader('Content-Type', 'application/json') res.statusCode = 200 res.end(data) }) } else { res.statusCode = 404 res.end('Not Found') } }
else if(req.method === 'GET'){
if(pathname === '/get') { res.end('Hello World') } else { res.statusCode = 404 res.end('Not Found') }
} }).listen(11451, ()=> console.log('Server running at http://127.0.0.1:11451/'))
|