我们需要根据不同的url请求相同页面这时我们可以试试下面方式:
第一我们要引入需要的模块
// 引入服务器模块
const http = require('http')
// 引入fs模块
const fs = require('fs')
// 引入path模块
const path = require('path')
之后根据文件的实际存放路径,作为每个资源的请求url地址具体代码如下:
// 创建服务器
const server = http.createServer()
// 监听服务器事件
server.on('request', (req, res) => {
// 获取请求的url地址
const url = req.url
console.log('当前的url是 ' + url);
// 把请求的url地址映射为具体的文件存放路径 但是这样太“死板”我们需要优化一下
// const fpath = path.join(__dirname, url)
// 代码优化
let fpath = ''
if (url == '/') {
// 由于刚进入或者用户输入'/'一般也是主页 所以我们要拼接一下
fpath = path.join(__dirname, './code/index.html')
} else {
fpath = path.join(__dirname, './code', url)
}
// 读取文件 把获得的url地址作为读取文件的实时路径
fs.readFile(fpath, 'utf-8', (err, dataStr) => {
// 错误返回404
if (err) {
return res.end('404 Not found!')
}
// 成功返回数据
res.end(dataStr)
console.log(dataStr);
})
})
server.listen(80, () => {
console.log('地址为 http://127.0.0.1');
})