Node.js核心模块

本文介绍了Node.js中几个核心模块的使用,包括console模块的计时功能,process模块获取系统信息和进程管理,path模块处理文件路径,fs模块详细阐述了文件和目录的各种操作如读写、删除、重命名,以及文件流的概念。最后,文章讲解了如何利用网络服务模块创建HTTP服务器。
摘要由CSDN通过智能技术生成

tip:node中的arguments 是一个伪数组对象,用于接收函数调用的时候传递的所有的参数值,并把他们封装到对象中。

    • console

用法:①输出到控制台 console.log( )

②格式化输出对象 console.table( )

③计算代码的运行效率(时间) console.time( )


// 计时开始和计时结束,time()中的参数值要一样
console.time("for") // 计时开始
for (let i =0;i<100000000;i++){

}
console.timeEnd("for") // 计时结束
    • process

用法:①node版本 process.version

②操作系统架构 (如X64、X32) process.arch

③操作系统平台(win32、win64) process.platform

④当前文件的目录 process.cwd()

⑤当前操作系统配置的环境变量 process.env

⑥当前的进程编号 process.pid

⑦可以停止某个程序的运行 process.kill( ) tip:括号内输入要停止程序的pid值,慎用

    • path

用法:需要先引入 const path = require('path')

①用来获取当前文件或者某个文件所在的目录


// 先获取当前文件或者某个文件的完整路径
console.log(__filename)
// 然后使用path模块的dirname()来获取目录
const _dirname = path.dirname(__filename)
console.log(_dirname)

②获取文件的名称 path.basename( )

③获取文件的扩展名 path.extname( )

④路径的拼接或者跳转 path.join( )


// 从当前目录跳回到上一级目录   ..表示上一级目录
const t = path.join(__dirname,'..')

// 拼接多层路径
const t3 = path.join(__dirname,"a","b","c.png")
    • fs 需要引入 const fs = require('fs')

用法一:对于文件的操作

①内容写入(会覆盖) fs.writeFile(文件路径,保存内容,回调函数)


const fs = require('fs')
// writeFile指定的文件如果不存在,会自动创建这个文件
// 注意:wirteFile是会覆盖已存在的文件的内容,而不是追加
fs.writeFile('./1.txt',"这个模块非常强大,能够操作文件",(err)=>{
    // 判断文件写入操作是否有错误
    if(err){
        throw err // 抛出错误,给node.js中的引擎处理
    }
    // 执行后续代码
    console.log('写入成功')
})

②文件读取 fs.readFile(文件路径,回调函数)


const fs = require('fs')
const _filename = path.join(__dirname,'1.txt')
fs.readFile(_filename,(err,data)=>{
    if(err){
        throw err
    }

    console.log(data.toString())
})

③文件删除 // fs.unlink(文件路径,回调函数)


// 删除文件
const fs = require('fs')
const path = require('path')

// 注意:如果删除不存在的文件,会报错
fs.unlink(path.join(__dirname,'1.txt'),(err)=>{
    if(err){
        throw err
    }
    console.log('删除成功')
})

④文件内容的写入(追加) fs.appendFile(文件路径,追加内容,回调函数)


const fs = require('fs')
// 指定的文件如果不存在,会自动创建这个文件
// appendFile不会覆盖已存在的文件的内容,而是追加
// 注意:在指定路径的时候,字符串拼接的问题!!
console.log(__dirname) // D:\node-study\01_module\2_core_module\04_fs\1_file
fs.appendFile(__dirname + '/2.txt',",它可以借助express或者koa2等框架来开发服务器端",(err)=>{
    if(err){
        throw err
    }

    console.log('写入追加成功')
})

用法二:对于目录的操作

①创建目录 fs.mkdir(目录的路径,回调函数)


const fs = require('fs')
// 注意:如果创建已经存在的目录,会报错
fs.mkdir("./d1",err=>{
    if(err){
        throw err
    }
    console.log('创建目录成功')
})

②读取目录中的内容(文件和目录) fs.readdir(目录路径,回调函数)

拓展内容:获取文件或者目录的详细信息


const fs = require('fs')
// data是一个数组,这数组中的元素是由当前目录下的文件的名称和数组的名称组成的
fs.readdir(__dirname+'/d1',(err,data)=>{
    if(err){
        throw err
    }
    // console.log(data)
    data.forEach(d=>{
        // console.log(d)
        // 获取目录或者文件的详细信息
        // stat是一个对象,保存了文件或者目录的详细信息。特别关注详细信息中的ctime这个创建时间的字段。使用的时候,需要注意加上8小时才能和我们的时间符合
        fs.stat(__dirname + "/d1/" + d,(err,stat)=>{
            if(err){
                throw err
            }
            console.log(stat)
         // stat.isDirectory() 判断当前读取的是不是目录;
         // stat.isFile() 判断读取的是不是文件
            if(stat.isDirectory()){
                console.log("目录:",d)
                console.log("目录信息:",stat)
            }else if(stat.isFile()){
                console.log("文件:",d)
                console.log("文件信息:",stat)
            }
        })
    })
})

③修改目录名称 fs.rename(旧的目录的名称,新的目录名称,回调函数)


const fs = require('fs')
fs.rename(__dirname+'/d1',__dirname+'/d2',err=>{
    if(err){
        throw err
    }
    console.log("重命名成功")
})

④删除目录 fs.rmdir(目录路径,回调函数)


const fs = require('fs')
// 注意:目录不为空的时候,不能删除;只有目录为空目录,才能删除
fs.rmdir('./d2',err=>{
    if(err){
        throw err
    }
    console.log("删除目录成功")
})

用法三:文件流


const fs = require('fs')

// 1、创建读取流   (读取的内容必须原本就存在)
var readStream = fs.createReadStream('./file2.txt')
// 2、创建写入流
var writeStream = fs.createWriteStream('./file_stream.txt')
// 3、进行写入操作:把读取流通过管道传给写入流
readStream.pipe(writeStream)
    • 网络服务模块

主要功能:创建服务器

 
 // 请求 req =>request
 // 响应 res => response
const http = require('http')

// 1、创建服务器
const server = http.createServer((req,res)=>{
    console.log(req.toString());
    res.statusCode =405
    res.setHeader('Content-Type','text/plain;charset=utf-8')
    res.end('你好,我是node.js服务端')
})


// 2、对外提供服务
const port = 3000
const host = 'localhost'
server.listen(port,host,()=>{
    console.log(`服务器运行在http://${host}:${port}`)
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值