当前位置:网站首页>黑马案例--实现 clock 时钟的web服务器
黑马案例--实现 clock 时钟的web服务器
2022-08-02 03:10:00 【龙眸】
1、核心思路
把文件的实际存放路径,作为每个资源的请求 url 地址
2、实现步骤
① 导入需要的模块
② 创建基本的 web 服务器
③ 将资源的请求 url 地址映射为文件的存放路径
④ 读取文件内容并响应给客户端
⑤ 优化资源的请求路径
步骤1、导入需要的模块
步骤2、创建基本的web服务器
步骤3-将资源的请求 url 地址映射为文件的存放路径
步骤4读取文件内容并响应给客户端
步骤5 优化资源的请求路径
核心代码如下:
// 1.导入http,fs,path模块
const http = require('http')
const fs = require('fs')
const path = require('path')
// 2.1创建web服务器
const server = http.createServer()
// 2.2监听web服务器的 request 事件
server.on('request', (req, res) => {
// 3.1获取到客户端请求的URL地址
const url = req.url
// // 3.2把请求的 URL 地址,映射为本地文件的存放路径
// const fpath = path.join(__dirname, url)
// 5.优化资源的请求路径
// 将3.2修改为如下代码
// 5.1预定义空白的文件存放路径
let fpath = ''
if (url === '/') {
// 5.2如请求的路径是否为/,则手动指定文件的存放路径
fpath = path.join(__dirname, './clock/index.html')
} else {
// 5.3 如请求的路径不为/,则动态拼接文件的存放路径
fpath = path.join(__dirname, './clock', url)
}
// 4.1根据映射过来的文件路径读取文件
fs.readFile(fpath, 'utf8', (err, datastr) => {
// 4.2读取文件失败后,向客户端响应固定的'错误信息'
if (err) {
return res.end('<h1>404 Not fount!</h1>')
}
// 4.3读取成功后,将读取内容响应给客户端
res.end(datastr)
})
})
// 2.3启动服务器
server.listen(80, () => {
console.log('server running at http://127.0.0.1:80');
})
边栏推荐
猜你喜欢
随机推荐
AntV X6制作画板工具(图形,线段,图片上传)
第一章——线性表(顺序表和链表)
DVWA之SQL注入
ASP WebShell backdoor script and anti-kill
MySQL8--Windows下使用msi(图形界面)安装的方法
MySQL八股文背诵版
PHP WebSehll backdoor script and detection tool
mysql8.0.28下载和安装详细教程,适配win11
WebShell连接工具(中国菜刀、WeBaCoo、Weevely)使用
基于时延估计的动力型下肢假肢分段控制策略研究
WebShell connection tools (Chinese kitchen knife, WeBaCoo, Weevely) use
输入延迟切换系统的预测镇定控制
【无标题】【Koltin Flow(三)】Flow操作符之中间操作符(二)
5.nodejs--跨域、CORS、JSONP 、Proxy
【LeetCode】104. Maximum depth of binary tree
MySQL中根据日期进行范围查询
VPS8701 电源管理(PMIC) VPS8701
Chapter 11_Database Design Specifications
Chapter 10_Index Optimization and Query Optimization
MySQL函数(经典收藏)









