当前位置:网站首页>黑马案例--实现 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');
})
边栏推荐
猜你喜欢
IPIDEA的使用方式
mysql8.0.28下载和安装详细教程,适配win11
Chapter 10 聚类
“带薪划水”偷刷阿里老哥的面经宝典,三次挑战字节,终成正果
CentOS7安装Oracle数据库的全流程
MySQL8 - use under Windows package installation method
自定义mvc框架复习(crud)
EF Core:基于关系的复杂查询 区分IEnumerable和IQueryable
(转帖)HashCode总结(1)
MySQL8 -- use msi (graphical user interface) under Windows installation method
随机推荐
7-43 字符串关键字的散列映射 (25 分) 谜之测试点
给你一个大厂面试的机会,你能面试上吗?进来看看!
第二章——堆栈、队列
程序员的七夕浪漫时刻
WebShell Feature Value Summary and Detection Tool
IPIDEA的使用方式
* Compare version numbers
Go语学习笔记 - gorm使用 - 事务操作 Web框架Gin(十一)
MySQL8.0.26安装配置教程(windows 64位)
就瞎写=感想
7-40 奥运排行榜 (25 分)多项排序
7、MySQL Workbench 导出导入数据库
STM32——LCD—TFTLCD原理与配置介绍
Navicat cannot connect to database Mysql because of WiFi
JDBC的入门使用
Go语学习笔记 - gorm使用 - 原生sql、命名参数、Rows、ToSQL Web框架Gin(九)
JSP Webshell free kill
just write blindly = feelings
MySQL修改最大连接数限制
第七周复习