简单的web测试
实现一个简单的Web服务器,能够根据HTTP请求的URL响应对应的静态资源,如果静态资源不存在则响应404。
步骤:
1、把所有的静态资源(.html、png、css、js等)全放在指定的目录“双开门效果”中
2、收到用户的请求之后,去“双开门效果”目录下去找到对应的文件
2.1、找到内容就读出来返回给用户
2.2、找不到就报404
目录如下:
3、在上面的目录结构中,我们把所有的静态资源全放在“双开门效果”下面,然后使用server.js来启动web服务器。
注意:我们在请求文件时,要注意根据不同的类型,返回对应的数据编码格式
具体代码:
const http = require('http') // 导入http系统模块
const fs = require('fs') // 导入fs文件系统模块
const path = require('path')// 路径相关的内置模块
// 创建一个服务
let server = http.createServer((req,res)=>{
// 1.获取浏览器请求的文件
let url = req.url
// 利用path模块获取文件的后缀名
const extname = path.extname(url)
// console.log(12,extname);
// 2、根据请求的文件,在我们的服务器中找对应的文件
fs.readFile('双开门效果'+url,function(err,data){
if(err){
res.statusCode = 404
res.setHeader('content-type','text/html;charset=utf8')
res.end('没有找到对应的文件')
return
}
// 根据后缀名设置,返回的数据编码格式
if(extname === '.png'){
res.setHeader('content-type','image/png')
} else if(extname === '.css'){
res.setHeader('content-type','text/css;charset=utf8')
} else if(extname === '.js'){
res.setHeader('content-type','application/javascript')
} else{
res.setHeader('content-type','text/html;charset=utf8')
}
// 3、找到文件后返回给浏览器
res.end(data)
})
})
// 4、监听端口并启动服务
server.listen(8001,()=>{
console.log("服务器启动成功:http://127.0.0.1:8001");
})