一、创建服务器
const http = require('http')
let server = http.createServer();
server.on('request',(req,res)=>{
res.end('xxx')
})
server.listen(8888,()=>{
console.log('server start 8888')
})
然后在命令行 启动该文件,那么服务器就轻松启动拉!
二、req请求数据
const http = require('http')
let server = http.createServer();
server.on('request',(req,res)=>{
// 请求信息
console.log(req.url)
console.log(req.method)
console.log(req.headers)
req.on('data',(data)=>{
console.log(data.toString())
})
res.end('结束')
})
server.listen(8888,()=>{
console.log('server start 8888')
})
注意:获取到的req数据,属性是只读
三、res响应数据
const http = require('http')
let server = http.createServer();
server.on('request',(req,res)=>{
// 响应信息
// 写头:多次写
res.setHeader('a','a')
res.setHeader('b','b')
res.setHeader('c','c')
// 写头:单次写 解决乱码
res.writeHead(200,{'content-type':'text/html;charset=utf-8','d':'d'})
res.write('百事比有果')
res.write('你的报应就是我')
res.end('结束')
})
server.listen(8888,()=>{
console.log('server start 8888')
})
四、node返回页面
app.js
const http = require('http')
const fs = require('fs')
http.createServer((req,res)=>{
if(req.url==='/'){
fs.readFile('./index.html',(err,data)=>{
res.writeHead(200,{'conten-type':'text/html;charset=utf-8'})
res.end(data)
})
}
}).listen('8888')
index.html
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>返回的页面</div>
</body>
</html>
五、以流的形式返回数据,实现简单版的即使通信
const http = require('http')
const fs = require('fs')
http.createServer((req,res)=>{
if(req.url==='/'){
fs.readFile('./index.html',(err,data)=>{
res.writeHead(200,{'conten-type':'text/html;charset=utf-8'})
res.end(data)
})
}else if(req.url==='/test'&& req.method === 'GET'){
res.writeHead(200,{'content-type':'application/octet-stream'})
setInterval(function() {
res.write(''+Date.now() +'^_^');
},1000);
}
}).listen('8888')
index.html
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<span id="info"></span>
<button id="btn">点我发</button>
<script type="text/javascript">
var info = document.querySelector('#info');
document.querySelector('#btn').onclick = function () {
// 发起ajax请求
var xhr = new XMLHttpRequest();
xhr.open('get','/test');
xhr.send();
// 处理响应
xhr.onreadystatechange = function () {
// readyState = 3 的时候是响应中
console.log(xhr.readyState); //1,2,3,4
console.log(xhr.responseText);
var arr = xhr.responseText.split('^_^')
console.log(arr[arr.length-2]);
info.innerText = arr[arr.length-2];
}
}
</script>
</body>
</html>
以流的形式返回数据给前端,必须把'content-type'设置为'application/octet-stream'
网友评论