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

本文介绍了如何使用Node.js创建一个基本的Web服务器,通过读取指定目录下的静态资源并根据请求URL返回,同时处理404错误。涉及的模块有http、fs和path,展示了如何设置响应头和数据编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的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");
 })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值