当前位置: 首页 > 工具软件 > vocdoni-node > 使用案例 >

【node】node下的模块。

曾嘉言
2023-12-01

一、fs文件系统模块

1、读取指定文件中的内容

(1)fs.readFile()的语法格式

fs.readFile(path[,options],callback)

参数1:必选参数,字符串,表示文件的路径。

参数2:可选参数,表示以什么编码格式来读取文件。

参数3:必选参数,文件读取完成后,回调函数。

(2)fs.readFile()的示例代码

const fs = require('fs')
fs.readFile('./1.txt','utf8',function(err,dataStr){
    console.log(err); //失败打印,
    console.log(dataStr);//成功打印
})

2、向指定的文件中写入内容

(1)fs.writeFile()的语法格式

fs.writeFile(file,data[,options],callback)

参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。

参数2:必选参数,表示要写入的内容。

参数3:可选参数,表示以什么格式写入文件内容,默认值是utf8。

参数4:必选参数,文件读取完成后,回调函数。

(2)fs.writeFile()的示例代码

const fs = require('fs')
fs.writeFile('./2.txt','我是你爸爸',function(err){
    if(err){
        return console.log('文件写入失败'+err.message);
    }
    console.log('文件写入成功');
})

3、fs文件读取写入的综合案例

const fs = require('fs')
fs.readFile('./成绩.txt','utf8',function(err,data){
    if(err){
        console.log('获取失败');

    }else{
        const arr=data.split(' ')
        const arrnew=[]
        arr.forEach(item=>{
            arrnew.push(item.replace('=',':'))
        })
        const newStr =  arrnew.join('\r\n')
        fs.writeFile('./新成绩.txt',newStr,function(err){
            if(err){
                return console.log('写入文件失败',err.message);
            }
            console.log('写入成功');
        })
    }
})

4、fs模块-路径动态拼接的问题

        在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题。

        原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。

可以用   __dirname  拼接路径。 __dirname代表当前路径,可以解决动态拼接路径的问题。

fs.readFile(__dirname+'/1.txt','utf8',function(err,dataStr){
    if(err){
        return console.log('读取文件失败!'+err.message)
    }
        console.log('读取文件成功!'+dataStr)
})

二、path路径模块

1、path路径拼接

(1)path.join()的语法格式

path.join([...paths])

...paths<string>路径片段的序列

返回值:<string>

(2)path.join()的示例代码

fs.readFile(path.join(__dirname+'/1.txt'),'utf8',function(err,dataStr){
    if(err){
        return console.log('读取文件失败!'+err.message)
    }
        console.log('读取文件成功!'+dataStr)
})

2、获取路径中的文件名

(1)path.basename()的语法格式

path.basename(path[,ext])

path<string>必选参数,表示一个路径的字符串

ext<string>可选参数,表示文件扩展名

返回:<string>表示路径中的最后一部分

(2)path.basename()的代码示例

const path = require('path')
const fpath = '/a/b/c/index.html'
const fullName = path.basename(fpath)
console.log(fullName);  //index.html
const fullnewName = path.basename(fpath,'.html')
console.log(fullnewName);//index

3、获取路径的文件扩展名

(1)path.extname()的语法格式

path.extname(path)

path<string>必选参数,表示一个路径的字符串

返回<string>返回得到的扩展名字符串

(2)path.extname()的代码示例

const path = require('path')
const fpath = '/a/b/c/index.html'
const pathnew = path.extname(fpath)
console.log(pathnew);  //.html

三、http模块

1、创建最基本的web服务器

(1)基本步骤

①导入http模块

const http = require('http')

②创建web服务器实例

const server = http.createServer()

③为服务器实例绑定request事件,监听客户端的请求

//使用服务器实例的.on()方法,为服务器绑定一个request事件

server.on('request',(req,res)=>{

        //只要有客户端来请求我们自己的服务器,就会触发request事件,从而调用这个事件的处理函数。

        console.log('Someone visit our web server')

})

④启动服务器

//调用server.listen(端口号,cd回调)方法,即可启动web服务器

server.listen(80,()=>{

        console.log('http server running at http://127.0.0.1')

})

2、req请求对象

        如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式:

server.on('request',(req)=>{

        //req是请求对象,它包含了与客户端相关的数据和属性,

        //req.url是客户端请求的URL地址

        //req.method是客户端的method请求类型

        const str = 'Your request url is ${req.url},and request method is ${req.method}'

        console.log(str)

})

3、res响应对象

const http = require('http')
const server = http.createServer()
server.on('request',(req,res)=>{
    const url =  req.url
    const method = req.method
    const str =  `Your request url is ${url},and request method is ${method}`
    console.log(str);
    res.end(str)

})
server.listen(80,()=>{
    console.log('server running at http://127.0.0.1')
})

4、解决中文乱码的问题

res.setHeader('Content-Type','text/html; charset=utf-8' )

5、根据不同的url响应不同的html内容

(1)核心实现步骤

①获取请求的url地址

②设置默认的响应内容为404 Not found

③判断用户请求的是否为/或/index.html首页

④判断用户请求的是否为/about.html关于页面

⑤设置Content-Type响应头,防止中文乱码

⑥使用res.end()把内容响应给客户端

(2)代码示例

const http = require('http')
const server = http.createServer()
server.on('request',(req,res) => {
    const url = req.url
    let content = '404 Not found!'
    if(url==='/'||url==='/index.html'){
        content=`<h1>首页</h1>`

    }else if(url==='/about.html'){
        content=`<h1>关于页面</h1>`
    }
    res.setHeader('Content-Type','text/html; charset=utf-8')
    res.end(content)
})
server.listen(8080,()=>{
    console.log('server running at http://127.0.0.1:8080');
})

 类似资料: