Node创建HTTP服务
原创
©著作权归作者所有:来自51CTO博客作者我的代码呢的原创作品,请联系作者获取转载授权,否则将追究法律责任
http.createServer()方法返回的是http模块封装的一个基于事件的http服务器,
http.request,是http模块封装的http客户端工具,可以用来向http服务器发起请求。
http.Server的事件主要有:
- request,常用的事件,在客户端发的请求到达的时候,request事件被触发,提供了req和res两个参数,表示请求和响应信息。
- connection,当TCP连接建立的时候,触发该事件,提供一个socket参数,是net.Socket的实例
- colse,服务器关闭的时候触发。
const http = require('http');
const server = http.createServer(function (req,) {
console.log(req)
res.writeHead(200, {
'content-type': 'text/plain'
})
res.end("hello,Node.js")
})
server.listen(2130, function () {
console.log('监听端口2130')
})
然后直接运行该文件,在浏览器打开127.0.0.1:8080
效果如下图:
请求信息
- data,接受请求体的数据
- end,请求体数据传输结束后触发
- colse,用户当前请求结束后触发
属性
- method,http请求方法
- headers,http请求头
- URL,http请求路径
- httpVersion,http协议的版本
const http = require('http');
const server = http.createServer(function (req,) {
let data = {
code:200,
data:{
name:'duxin',
age:18
}
};
req.on('data', function (chunk) {
data += chunk;
})
req.on('end', function () {
let method = req.method;
let url = req.url;
let headers = JSON.stringify(req.headers);
let httpVersion = req.httpVersion;
res.writeHead(200, {
'content-type': 'text/html',
"access-control-allow-origin":"*"
});
let dataHtml = `<p>data:${data}</p>`;
let methodHtml = `<p>method:${method}</p>`
let urlHtml = `<p>url:${url}</p>`
let headersHtml = `<p>headers:${headers}</p>`
let httpVerisonHtml = `<p>method:${httpVersion}</p>`
let resData = dataHtml + methodHtml + urlHtml + headersHtml + httpVerisonHtml;
res.end(resData);
});
});
server.listen(2130, function () {
console.log('监听端口2130')
})