当前位置:网站首页>黑马案例--实现 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');
})
边栏推荐
- Webshell upload method
- PHP WebSehll backdoor script and detection tool
- 7-41 PAT排名汇总 (25 分)多样排序
- MySQL8.0.26 installation and configuration tutorial (windows 64-bit)
- 2W字!梳理50道经典计算机网络面试题(收藏版)
- 聊聊flink的BoundedOutOfOrdernessTimestampExtractor
- just write blindly = feelings
- 就瞎写=感想
- 01-Node-Express系统框架搭建(express-generator)
- VPS8505 微功率隔离电源隔离芯片 2.3-6V IN /24V/1A 功率管
猜你喜欢
MySQL index optimization in practice
WebShell连接工具(中国菜刀、WeBaCoo、Weevely)使用
JSP Webshell free kill
SSM网上商城购物系统(前台+后台)
ASP WebShell backdoor script and anti-kill
Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)
mysql8.0.28下载和安装详细教程,适配win11
MySQL8 - use under Windows package installation method
关于跨域问题
Difference between #{} and ${}
随机推荐
嵌入式分享合集25
Lua安装及常用命令使用
HCIP第十一天_MPLS实验
7、MySQL Workbench 导出导入数据库
【LeetCode】102. Level order traversal of binary tree
Go简单实现协程池
MySQL8 - use under Windows package installation method
关于跨域问题
MySQL六脉神剑,SQL通关大总结
DVWA之SQL注入
Ribbon本地实现负载均衡
Chapter 10 聚类
Using WebShell to get Shell Skills
MySQL8.0.26安装配置教程(windows 64位)
蓝鲸DevOps荣获平台类工具企业选择率第一
Invalid bound statement (not found)出现的原因和解决方法
Keil开发环境安装教程
py0_二十一天计划书
2W字!详解20道Redis经典面试题!(珍藏版)
MySQL8 -- use msi (graphical user interface) under Windows installation method