Node.js学习(二):path与http模块

Node.js学习(二):path与http模块

1、path路径模块

1)、path.join() 方法

​ path.join() 方法,可以把多个路径片段拼接为完整的路径字符串。

​ 传递参数的个数不做限制,每个参数为路径字符串的一个片段,按照传递参数的顺序进行路径拼接。

const path = require('path')
const fs = require('fs')

//  ../ :返回上一级路径,会抵消掉其前面的一个路径
const fpath = path.join('/a','/b/c','../../','/e') 
console.log(fpath)

fs.readFile(path.join(__dirname,'/文本/1.txt'),'utf-8',function(err,data){
    if(err){
        return console.log('读取文件失败'+err.message)
    }
    console.log('文件读取成功'+data)
})

2)、path.basename() 方法与path.extname()方法

​ path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,有两个参数。

​ 参数一:路径,必填

​ 参数二:文件扩展名,选填

​ path.extname() 方法,可以获取路径中的扩展名部分,有一个参数。填入需要获取后缀的路径,必填。

const path = require('path')

const fpath1 = 'a/b/c/index.html'
// basename()方法:用来获取路径中的文件名
//      参数一:路径,必填
//      参数二:文件扩展名,选填
const fp1 = path.basename(fpath1)
const fp2 = path.basename(fpath1,'.html')
console.log(fp1)
console.log(fp2)

//  extname()方法:用来获取路径中文件后缀
const fp3 = path.extname(fpath1)
console.log(fp3)

​ **注意:**fs.writeFile() 方法只能用来创建文件,不能用来创建路径

2、http模块

1)、http模块需要了解的概念

	客户端、服务器、IP地址、域名、端口号、域名服务器等

2)、创建基本的web服务器

//	引入http模块
const http = require('http')
//	创建web服务器实例
const server = http.createServer()
//  使用服务器实例的  .on()方法,为服务器绑定一个request事件
server.on('request', (req,res)=>{
    //  只要有客户端来请求我们自己的服务器,就会触发 request 事件,从而调用这个事件处理函数
    console.log('someone visit our server')
})

//	启动服务器
server.listen(8080,()=>{
    console.log('server is running at http://127.0.0.1:8080')
})

3)、请求对象(req)与响应对象(res)

server.on('request',(req,res)=>{
    //  req是请求对象,它包含了与客户端相关的数据和属性,例如:
    //  req.url 是客户端请求的URL地址
    //  req.method 是客户端的 method 请求类型
    const url = req.url
    const method =req.method
    const str =`Your request url is ${url},and request method is ${method}`
    //  res是响应对象,它包含了与服务器相关的数据和属性
    //  res.end()方法的作用:向客户端发送指定的内容,并结束这次请求的处理过程
    res.end(str)
})

4)、根据不同的url响应不同的页面内容

const http = require('http')
const server = http.createServer()

server.on('request',(req,res)=>{
    const url = req.url
    let content = `<h1>404 Not found!</h1>`
    if(url === '/' || url === '/index.html'){
        content = `<h1>首页!</h1>`
    }else if(url === '/about.html'){
        content = `<h1>关于页面</h1>`
    }
    //  为了防止中文乱码的问题,需要设置响应头 Content-Type 的值为 text/html; charset=utf-8
    res.setHeader('Content-Type','text/html; charset=utf-8')
    res.end(content)
})

server.listen('3000',()=>{
    console.log('http server is running at http://127.0.0.1:3000')
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值