先上代码,这是创建服务并启动的代码 5.js:
// 引入fs操作文档模块
const fs = require('fs')
// 引入http模块创建服务
const http = require('http')
// 引入path模块处理路径问题
const path = require('path')
// 创建一个服务
const sever = http.createServer()
// 响应客户端发送的请求
sever.on('request',(req,res)=>{
// 获取请求中的url
const url = req.url
// 对路径做处理
let fpath = ''
if(url === '/'){
fpath = path.join(__dirname,'block/demo.html')
}else{
fpath = path.join(__dirname,'/block',url)
}
// 根据映射过来的文件路径读取文件内容
fs.readFile(fpath,'utf8',(err,dataStr)=>{
if(err) return res.end('404 Not found...')
return res.end(dataStr)
})
// 设置Content-type 防止乱码
// res.setHeader('Content-Type','text/html; charset=utf-8')
})
// 启动服务
sever.listen(8080,()=>{
// 在控制台输出提示已经启动服务
console.log('Sever runing at http://127.0.0.1:8080')
})
代码没问题吧,没问题就通过node命令执行文件:node 5.js
想要看效果?那就再浏览器里访问我们启动服务的地址,我这里是http://127.0.0.1
就可以访问到block文件夹里的demo.html了
注:这里是我们自己的电脑既充当服务端也充当客户端。
---------------------------------------------------------------------------------------------------------------------------------
这里我服务端响应的文件在block文件夹下,demo的项目结构如下:
------------------------------------------------------------------------------------------------------
demo实现的需求:客户端向服务器请求demo.html页面,服务器收到请求并返回资源。
demo事先准备:
- 任意一个文件夹,作为服务器端存放资源的地方。
- 一个js文件用来创建服务器并简单的接收请求和处理请求。
代码的每一行功能都做有注释,不难理解。