node.js里的http、fs、url三个模块之响应不同页面

1.http模块

        1.1 在node.js里面有自带的http模块,直接引入就行,它可以给我们创建一个服务器。
        1.2 引入方式:const http = require(“http”)。
        1.3 作用:
              1.3.1通过createServer创建一个服务器,createServer里面的参数为回调函数,如果有请求的话,回调函数就会执行,执行机制如果访问一次,那么回调函数相应地执行一次。
              1.3.2 自己所创建的服务器需要添加自己写的端口来提供监听。这样所有来自前端的请求都会被服务器监听到。
        1.4 request与response:request代表请求,即输入(接受)——被请求的信息。response代表响应,即输出——输出的信息

2.fs模块

        2.1 在node.js里面有自带的fs模块,直接引入就行,它是文件系统模块,能允许访问计算机上的文件系统并与之交互。
        2.2 引入方式:const fs = require(“fs”)。
        2.3 作用:
              2.3.1 写入文件。如果指定的文件已经存在,它会将旧内容替换为参数所提供的内容,如果指定的文件不存在,则创建一个新文件。关键字:writeFile。
              2.3.2 读取文件。关键字:readFile,该方法至少有两个参数。第一,文件的路径,第二,回调函数。如果有错误会抛出错误,否则输出文件内容。
         2.4 fs模块里面的有些方法存在异步,书写方式可以用回调函数方式也可以用async和await关键字即promise去写。

3.url模块

        3.1 在node.js里面有自带的url模块,直接引入就行,它是全球统一资源定位符,也称为网址。
        3.2 引入方式:const url = require(“url”)。
        3.3 作用:
              3.3.1 url.parse()方法。通过这个方法可以获取URL字符串,通过utf-8或者buffer字节对其进行解析,然后返回URL对象。
              3.3.2 url.format()方法。将传入的url对象编程一个url字符串并返回。
              3.3.3 url.resolve()方法。用来解决锚标记HREF的Web浏览器的方式来解析相对于基础URL的目标URL,返回一个格式为"from/to"的字符串。

通过上述三个方法写的一个响应不同页面小功能

//  后端中的web层  提供所需要的接口
const http = require("http")
const fs = require("fs")
const url = require("url")
const quertString = require("querystring")

const server = http.createServer((req,res) =>{
    //  创建静态私服
    let urlObj = url.parse(req.url,true);
    // 获取路由(地址、接口)
    let pathname = urlObj.pathname;
    // 获取参数
    let query = urlObj.query;

    //index.html页面
    if((pathname == "/" || pathname == "/index.html") && req.method == "GET"){
        fs.readFile("./index.html","utf-8",(err,data) =>{
            if(err){
                // 如果错误直接去404页面
                fs.readFile("./page/404.html","utf-8",(err,data) =>{
                    if(err){
                        res.end("404")
                    }
                    res.end(data)
                    return ;
                })
            }
            res.end(data);
        })
    }else if(pathname == "/css/index.css" && req.method == "GET"){       // index.css页面
        fs.readFile("./css/index.css","utf-8",(err,data) =>{
            res.end(data)
        })
    }else if(pathname == "/css/backshou.css" && req.method == "GET"){      //backshou页面
        fs.readFile("./css/backshou.css",'utf-8',(err,data) =>{
            res.end(data)
        })
    }else if(pathname == "/page/404.html" && req.method == "GET"){     //404.html页面
        fs.readFile("./page/404.html","utf-8",(err,data) =>{
            res.end(data)
        })
    }else if(pathname == "/page/login.html" && req.method == "GET"){   // 登录页面
        fs.readFile("./page/login.html","utf-8",(err,data) =>{
            res.end(data)
        })
    }else if(pathname == "/page/backshou.html" && req.method == "GET"){    // backshou,html页面
        fs.readFile("./page/backshou.html","utf-8",(err,data) =>{
            res.end(data)
        })
    }

})

server.listen(3000,()=>{
    console.log('服务器已启动')
})

效果图

例1:login.html
在这里插入图片描述
例2:index.css
在这里插入图片描述
例3:backshou.html
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值