前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >读书笔记-《了不起的nodejs》-fs、stream

读书笔记-《了不起的nodejs》-fs、stream

作者头像
用户3258338
发布2019-07-19 17:05:49
5030
发布2019-07-19 17:05:49
举报

我们终其一生就是要摆脱他人的期待,找到真实的自己

超喜欢这样的光线~

对CLI一探究竟

argv

process.argv包含了所有Node程序运行时的参数值:

代码语言:javascript
复制
// example.js
console.log(process.argv);

看一下运行结果:

第一个元素始终是node,第二个元素始终是执行的文件路径,紧接着是命令行后紧跟着的参数。

所以要获得参数要将前两个元素去除掉。

代码语言:javascript
复制
// example.js
console.log(process.argv.slice(2));

工作目录

__dirname :获取执行文件时该文件在文件系统中所在的目录

process.cwd :获取程序运行时当前工作目录(current work directory,我是这样理解这个缩写的)。

环境变量

Node允许通过process.env变量来轻松访问shell环境的变量。

经常用到的就是NODE_env

代码语言:javascript
复制
process.env.NODE_ENV = 'production'

来控制程序是运行在生产环境还是开发环境。

退出

代码语言:javascript
复制
process.exit(1)

ANSI转义码

在文本终端控制格式、颜色以及其他输出选项,可以用ANSI转义码。

例如:

代码语言:javascript
复制
// example.js
console.log('\033[90mHello world \033[39mHello World');
  • \033:表示转义序列的开始
  • [ : 开始颜色设置
  • 90: 前景色为亮灰色
  • m :颜色设置结束

对fs一探究竟

Stream

为了理解stream的威力,先来看两个例子:

代码语言:javascript
复制
var fs = require('fs');
fs.readFile('a.txt',function(err,contents){
    //对文件进行处理
})

上面的例子必须等到整个文件读取完毕、载入RAM、可用的情况下才会触发。

可是如果一个文件超级大,那么岂不是要等很长时间,这时候stream就能发挥作用了:

代码语言:javascript
复制
var stream = fs.createReadStream('a.txt');
stream.on('data',function(chunk){
    //对文件部分内容进行处理
})
stream.on('end',function(chunk){
    //文件读取完毕
})

stream可以读取可变大小的文件,当每次读取完之后会触发回调函数。

监视

node允许对文件和目录进行监视。

?:查找工作目录下的所有css文件,监视它是否发生改变,

发生改变,就将改文件名输出到控制台

代码语言:javascript
复制
var fs = require('fs');
var files = fs.readdirSync(process.cwd());
files.forEach(function(file){
    if(/\.css/.test(file)){
        fs.watchFile(process.cwd()+'/'+file,function(){
            console.log('-','changed!')
        })
    }
})

到这里我们已经了一下Node的一些API。其中Stream和process都是非常重要的,所以各位宝宝,如果没有特别get的话就再查查资料吧!

下一章我们要学习TCP喽!

愿我们有能力不向生活缴械投降---Lin

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 女程序员的日常 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档