node中的process和Buffer 和 去重

2018-10-01  本文已影响0人  战神七小姐

1.process是一个全局对象,无息声明就可以访问,每个node进程都有独立的process对象,该对象储存了当前进程的环境变量

process.argvnode的命令行参数,argv[0]表示node本身,argv[1]表示当前文件路径

process.pid  :进程id

process.version:node版本

process.cwd() :当前目录

process.nextTick(function(){

console.log("first")

})

console.log("next");

2.Buffer是node特有的(区别于浏览器js)的数据类型、主要用来处理二进制数据、在文件操作和网络操作中,如果不显示的声明编码格式,起返回数据的类型是Buffer

Buffer.from();

readFile(适用较小的文件)异步读取文件的方法,读取的数据在回调中获取 readFileSync直接返回文本数据内容

大文件用stream读取

读取文件一定要设置编码,否则默认是buffer形式出现

//读取文件

fs.readFile("路径","utf-8",function(err,res){//异步读取文本文件的的内容

console.log(res.toString())//异步编程

})

var data=fs.readFileSync("路径",{encode:"utf-8"});

console.log(data);//同步编码

//获取文件状态

fs.stat("路径",function(err,result){

if(err){

console.log(err)

return

}else{

console.log(result)

}

})

__dirname:全局变量,储存的是文件所在的文件目录

__firname:返回当前模块文件被解析后的绝对路径,该属性并非全局,而是模块作用域下的

//获取目录下的所有的文件名字

function getAllFileFromPath(path){

    fs.readdir(path,function(err,res){

        for (var subPath of res){

            var  statobj=fs.statSync(path+"/"+subPath);

            if(statobj.isDirectory()){//判断是否为目录

                console.log("DIr",subPath)//如果是文件夹,递归获取子目录中的文件列表

            }else{

                console.log(subPath);

            ]

        }

    })

}

getAllFileFromPath(__dirname)

//关于去重

var util={

    noRepeat:function(arr){

        return arr.filter()function(ele,index){

            rewurn arr.indedxOf(ele)==index//indexOf只找第一个元素

        }

    },

    add:function(arr){

        return arr.reduce(function(ele1,ele2){

            return ele1+ele2

        })

    }

}

//es6去重

var arr = [1, 2345, 123, 1, 1, "1", null];

console.log(new Set(arr));

上一篇 下一篇

猜你喜欢

热点阅读