“ 我们终其一生就是要摆脱他人的期待,找到真实的自己”
超喜欢这样的光线~
对CLI一探究竟
—
argv
process.argv包含了所有Node程序运行时的参数值:
// example.js
console.log(process.argv);
看一下运行结果:
第一个元素始终是node,第二个元素始终是执行的文件路径,紧接着是命令行后紧跟着的参数。
所以要获得参数要将前两个元素去除掉。
// example.js
console.log(process.argv.slice(2));
工作目录
__dirname :获取执行文件时该文件在文件系统中所在的目录
process.cwd :获取程序运行时当前工作目录(current work directory,我是这样理解这个缩写的)。
环境变量
Node允许通过process.env变量来轻松访问shell环境的变量。
经常用到的就是NODE_env
process.env.NODE_ENV = 'production'
来控制程序是运行在生产环境还是开发环境。
退出
process.exit(1)
ANSI转义码
在文本终端控制格式、颜色以及其他输出选项,可以用ANSI转义码。
例如:
// example.js
console.log('\033[90mHello world \033[39mHello World');
对fs一探究竟
—
Stream
为了理解stream的威力,先来看两个例子:
var fs = require('fs');
fs.readFile('a.txt',function(err,contents){
//对文件进行处理
})
上面的例子必须等到整个文件读取完毕、载入RAM、可用的情况下才会触发。
可是如果一个文件超级大,那么岂不是要等很长时间,这时候stream就能发挥作用了:
var stream = fs.createReadStream('a.txt');
stream.on('data',function(chunk){
//对文件部分内容进行处理
})
stream.on('end',function(chunk){
//文件读取完毕
})
stream可以读取可变大小的文件,当每次读取完之后会触发回调函数。
监视
node允许对文件和目录进行监视。
?:查找工作目录下的所有css文件,监视它是否发生改变,
发生改变,就将改文件名输出到控制台
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