核心思路
把文件存放的实际路径 作为每个资源的请求url地址。
1 浏览器访问网址向服务器发起请求
2 在自己写的web服务器里把文件实际存放路径作为每个资源的请求url地址 因此,可以直接把请求的url地址 当作读取文件的路径
3 读文件 文件根目录以/表示
4 读取完毕 将读取到的文件内容(字符串)通过res.end()方法响应给客户端
5 响应 客户端请求回来的 不是具体文件,而是文件中所存储的字符串
服务器充当的角色就是一个字符串的搬运工
fs+path+http
实现步骤
1 导入需要的模块
2 创建基本的web服务器
3 将资源的请求url地址映射为文件的存放路径
4 读取文件内容并响应给客户端
5 优化资源的请求路径
源码
//导入需要的模块
const fs = require("fs") //操作文件
const path = require("path") //文件路径处理
const http = require("http")
//创建最基本的web服务器
const server = http.createServer()
server.on("request", (req, res) => {
//所有文件的路径
///demo.html /js/demo.js /style/demo.css
const url = req.url
//将资源的请求url地址映射为文件的存放路径
const fpath = path.join(__dirname, url)
//根据映射过来的文件路径读取文件
fs.readFile(fpath, 'utf-8', (err, dataStr) => {
if (err) {
return res.end("404 Not found")
}
res.end(dataStr)
})
})
//启动服务器
server.listen("8000", () => {
console.log("服务在8000端口上启动")
})