前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node 相关知识学习

node 相关知识学习

原创
作者头像
xyzzz
修改2021-08-02 10:20:14
2200
修改2021-08-02 10:20:14
举报
文章被收录于专栏:前端学习。前端学习。

一:file模块

1、两种导出方式

代码语言:javascript
复制
module.exports = {fn,student}  或 exports.fn = fn      

2、同步把内容写入到文件

代码语言:javascript
复制
 let fs = require('fs')
  // 同步打开文件
     let fd = fs.openSync('text.txt','w')

   // 写入内容
      let str = '臭鱼111'
      fs.writeFileSync(fd,str)

  // 退出文件
      fs.closeSync(fd)     

3、异步把内容写入到文件

代码语言:javascript
复制
fs.open('text02.txt','w',(err,fd)=>{
    console.log('文件打开了');
    fs.writeFile(fd,'臭屁猫',(err)=>{
        if(err){
            console.log(err);
        }
        else{
            console.log('文件写好了');
            fs.close(fd,()=>{
                console.log('文件关闭了');
            })
            

        }
    })
})

console.log('111'); // 异步情况下先执行此代码

4、读取数据

代码语言:javascript
复制
let fs = require('fs')

fs.readFile('text03.txt',(err,data)=>{
    if(err){
        console.log(err);
    }else{
        console.log('读取成功');
        console.log(data);  // 二进制数据
        console.log(data.toString());  // 字符串
    }
})

console.log('111'); // 异步情况下先执行此代码

5、读取文件后写入:相当于复制粘贴一份一模一样的

代码语言:javascript
复制
let fs = require('fs')

fs.readFile('0.jpg',(err,data)=>{
    if(err){
        console.log(err);
    }else{
        console.log('读取成功');
        console.log(data); // 二进制数据
        fs.writeFile('00.jpg',data,(err)=>{
            if(err){
                console.log(err);
            }else{
                console.log('写入成功');
            }
        })
    }
})

6、写入流

代码语言:javascript
复制
let fs = require('fs')

let wv = fs.createWriteStream('text03.txt')

wv.once('open',()=>{
    console.log('通道打开');
    wv.write('哈哈哈1')
    wv.write('哈哈哈2')
    wv.write('哈哈哈3')
})

wv.once('close',()=>{
    console.log('通道关闭');
})

7、读取流和写入流

代码语言:javascript
复制
let fs = require('fs')

let rs = fs.createReadStream('0.jpg')
let ws = fs.createWriteStream('0-0.jpg')

// 监听读取流打开
rs.once('open',()=>{
    console.log('读取流打开');
})

// 监听读取流关闭
rs.once('close',()=>{
    console.log('读取流关闭');
})

// 监听写入流打开
ws.once('open',()=>{
    console.log('写入流打开');
})

// 监听写入流关闭
ws.once('close',()=>{
    console.log('写入流关闭');
})

// 将读取的数据通过写入流写入
rs.on('data',(data)=>{
    ws.write(data)
})

8、读取流和写入流 简易版 通过管道写入

代码语言:javascript
复制
let fs = require('fs')

let rs = fs.createReadStream('0.jpg')
let ws = fs.createWriteStream('0-1.jpg')


rs.pipe(ws)

9、删除文件和读取目录下所有文件

代码语言:javascript
复制
let fs = require('fs')

// 删除文件
fs.unlink('text.txt',(err)=>{
    if(err){
        console.log(err);
    }else{
        console.log('删除成功');
    }
})


// 读取目录下所有文件
fs.readdir('./',(err,files)=>{
    if(err){
        console.log(err);
    }else{
        console.log(files); 
        /*[
            '0-0.jpg',    '0-1.jpg',
            '0.jpg',      '00.jpg',
            'index01.js', 'index02.js',
            'index03.js', 'index04.js',
            'index05.js', 'index06.js',
            'index07.js', 'index08.js',
            'index09.js', 'index10.js',
            'text02.txt', 'text03.txt'
          ]
          */
    }
})

10、创建和删除空的文件夹

代码语言:javascript
复制
let fs = require('fs')

// 创建文件夹
fs.mkdir('./img',(err)=>{
    if(err){
        console.log(err);
    }else{
        console.log('创建成功');
    }
})

// 删除空的文件夹
fs.rmdir('./img',(err)=>{
    if(err){
        console.log(err);
    }else{
        console.log('删除成功');
    }
})

11、删除非空文件夹

代码语言:javascript
复制
const fs = require("fs")

// 删除非空文件夹
function deleteDir(dirPath){
    // 拿到当前路径下的文件数组
    var fileArr = fs.readdirSync(dirPath)
    // 遍历数组
    for(var i in fileArr){
        // 拿到每个文件的具体路径
        var filePath = dirPath + '/' + fileArr[i]

        // 读取每个文件的信息
        var stat = fs.statSync(filePath)

        // 判断是文件还是目录
        if(stat.isFile()){
            // 是文件,则删除文件
            fs.unlinkSync(filePath)
        }else if(stat.isDirectory()){
            // 是文件夹,则递归调用此函数
            deleteDir(filePath)
        }
    }

    // 删除空目录
    fs.rmdirSync(dirPath)

}

deleteDir('./img')

二:events模块

三:buffer

四:node进程

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:file模块
    • 1、两种导出方式
      • 2、同步把内容写入到文件
        • 3、异步把内容写入到文件
          • 4、读取数据
            • 5、读取文件后写入:相当于复制粘贴一份一模一样的
              • 6、写入流
                • 7、读取流和写入流
                  • 8、读取流和写入流 简易版 通过管道写入
                    • 9、删除文件和读取目录下所有文件
                      • 10、创建和删除空的文件夹
                        • 11、删除非空文件夹
                        • 二:events模块
                        • 三:buffer
                        • 四:node进程
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档