核心思路
把文件的实际存放路径,作为每个资源的请求url地址
实现步骤
- 导入需要的模块
- 创建基本的web服务器
- 将资源的请求url地址映射为文件的存放路径
- 读取文件内容并相应给客户端
- 优化资源的请求路径
代码演示
//导入http模块
const http = require('http');
//导入fs模块
const fs = require('fs');
//导入path模块
const path = require('path');
//创建web服务器实例
const server = http.createServer();
//监听web服务器的request事件
server.on('request', (req, res) => {
//获取到客户端请求的url地址
// url: /clock/index.html
const url = req.url;
//预定义空白的文件存放路径
let fpath = '';
if (url === '/') {
//如果请求的路径为 '/',则手动指定文件的存放路径(优化后)
fpath = path.join(__dirname, './clock/index.html');
} else {
fpath = path.join(__dirname, '/clock', url);
}
//把请求的url地址 映射为本地文件的存放路径(优化前)
// const fpath = path.join(__dirname, url);
fs.readFile(fpath, 'utf8', (err, dataStr) => {
if (err) {
return res.end('404 Not found.');
}
res.end(dataStr);
})
});
//启动服务器
server.listen(80, () => {
console.log('Serevr is running at http://127.0.0.1');
})