首页 技术 正文
技术 2022年11月23日
0 收藏 877 点赞 2,989 浏览 3182 个字

全局对象:

console  ;

__filename     ;

__dirname     ;

setTimeOut     ;

setImmediate(把参数函数放在下一个环节执行)

process对象

  cwd   //当前工作目录   console.log(process.cwd());

  chdir   //修改当前工作目录   process.chdir(‘..’) ;  切换到上一层目录

  memoryUsage   //内存使用量    process.memoryUsage();    {rss:常驻内存,heapTotal:堆的总内存,heapUsed:堆得已使用内存}

  nextTick    //放在当前任务的末尾

================================

util

  1、inherits   //原型继承,(ChildFun只继承ParentFun原型上的属性与方法)  util.inherits(ChildFun,ParentFun);  var child  = new ChildFun()

  2、inspect

//关于枚举隐藏与强制显示
var util = required(‘util’);
var obj = new Object();
obj.name = 'liujinyu'
Object.defineProperty(obj,'age',{
  value:27,
  configurable:true, //可配置 可删除
  writable:true, //值可以改变
  enumerable:false //不可枚举
})
console.log(util.inspect(obj),{
  showHidden:true //{name:'liujinyu',[age]:27}
})

  3、isArray ;

  4、isRegExp;

  5、isDate;

fs

  var content = fs.readFileSync(‘../file.txt’,{encoding:’utf8′})  //同步

  fs.readFile(‘../file.txt’,{encoding:’uft8′},(err,data)=>{console.log(data)})  //异步 【!所有异步要晚于同步,所有异步放在下一个清单】

======================================================

【流】

  流的概念:流是一组【有序】的,有【起点】和【终点】的【字节数据传输】手段;

       不关心文件整体内容,文件多大,只关心是否读到、以及读到后的操作处理

       流是一个【抽象接口】,被node中很多对象所实现,比如对一个http服务器的请求对象request是一个流,stdout也是流。

  stream.Readable可读流

  fs.createReadStream(‘../file.txt’,[opations]);  //opactions: flags对文件何种操作,默认‘r’, encoding , start 开始读取字节读索引位置,

                       //end 结束索引, highWaterMark 最高水位线,却省64kb

 var fs = require('fs'); // 创建之后的流在准备好【接收】之前不会开始【发射】数据
var rs = fs.createReadStream('data/account_0.data',{//创建流
flage:'r',//打开文件之后想干什么 r只读操作 w写操作
// encoding:'utf8' //默认是buffer
start:10,//读取的字节索引的开始位置
end:30,//读取的字节索引的开始位置
highWaterMark:10//最高水位线,却省默认64kb,一次取多少1字节
}) //可读流方法
rs.setEncoding('utf8');//可以在创建流之后制定编码
rs.pause();//通知对象 暂停 触发data事件
rs.resume();//通知对象 恢复 触发data事件
// rs.pipe();//设置【管道】,将可读流内容导入参数指定的【可写流】 // 流是EventEmitter的子类
// 下面是可读流触发的事件 用on来绑定 触发事件有 data\end\error
rs.on('data',function(resData){//绑定一个“data”事件监听器,
console.log(resData) //会将流切换到“流动模式”,数据被尽可能快读出
})
rs.on('end',function(){//读完后触发
console.log('读完了')
})
rs.on('error',function(err){//当数据接收错误时触发
console.log(err);
})

  stream.writeStream可写流

var fs = require('fs');
//在fs模块中 用createWriteStream创建一个将流数据写入文件中的 WriteStream对象var ws = fs.createWriteStream('data/my.data',{
flags:'a',//默认w r=read w=write a=append
encoding:'utf8',
// start:0,// 从第几个字节开始写入
highWaterMark: //却省16kb 设置缓存区大小 最高水位线设5字节
// 可以说是控制写入速度 大口大口喂
})//可写流的方法
ws.write('');//write写入缓存区
var flag = ws.write('');//flag,是否满足缓存区 highWaterMark 设置的大小
console.log(flag)ws.on('drain',function(){
console.log('drain')
})// 结束写入数据时触发。迫使缓存区中数据立即写入目标对象,调用后不能再写入
ws.end('man'); //向流入写入数据

【练习】利用流,做一个copy方法,复制文件 copy(file1,file2) copy:file1=>file2

  【pipe】

var fs = require('fs');
//在fs模块中 用createWriteStream创建一个将流数据写入文件中的 WriteStream对象function copy(file1,file2){
var rs = fs.createReadStream(file1);
var ws = fs.createWriteStream(file2); rs.on('data',function(d){
var flag = ws.write(d);
if(!flag){//当写不进去了
ws.pause();//暂停写入
}
})
ws.on('drain',function(){//写入流 监听到写完
ws.resume(); //恢复写入
})
rs.on('end',function(){
ws.end();//当读完的时候也要关闭写入文件
})
}
// copy('my.js','my1.js')// ------ 用 pipe 重写 copy (pipe的源码上面的function cope 一样)--------
// 将数据的【制留量】限制到一个可接受的水平,以使得不同速度的来源和目标不会【淹没】可用内存
function copy_pipe(file1,file2){
var rs = fs.createReadStream(file1);
var ws = fs.createWriteStream(file2);
rs.pipe(ws);
}
copy_pipe('my.js','my1.js')

============================================

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,026
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,517
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,364
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,145
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,779
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,856