0
点赞
收藏
分享

微信扫一扫

【nodejs】利用web服务器处理静态资源

日月同辉9908 2022-04-27 阅读 88
前端

简单的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");
 })
举报

相关推荐

0 条评论