最近公司项目不是很急,所以想静下心学习node.js,教程是《廖雪峰的官方网站》中的node教程,学习基础还是可以的,但是好像没有深入 地址:廖雪峰的官方网站之node学习
有关node的安装以及npm安装这里就不啰嗦了,我一介菜鸟都会的操作,各位大佬肯定也是会的。
1.关于node读写操作
首先给大家介绍一下 node里面很重要的一个朋友 **fs**
文档中说 fs模块就是文件系统模块,负责**读写文件**
fs提供了同步和异步的方法 下面会有介绍
引用fs的方法很简单,通过node内置的require操作就好
***var fs = require('fs')***
假设你的项目中已经有了一个**data.txt(名字是随便取的)**的文件,你想要去了解他里面的内容就可以进行以下操作:
fs.readFile('data.txt','utf-8',function(err,data){ //注意 **readFile** 是异步读取数据的方法,同步读取数据是readFileSync
if(err){
console.log(err); //错误处理提示
}else{
console.log(data); //data就是你所查找的文件内的内容
}
})
//说完了异步读取数据的过程,再来看下同步读取数据的过程
var data = fs.readFileSync('data.txt');
console.log(data); //这个data就是文件内容
//有同学会好奇那同步读取报错怎么办,好办 用到了 try....catch
try{
var data = fs.readFileSync('data.txt');
console.log(data); //这个data就是文件内容
}catch(err){
console.log(err)
}
2. 关于node ‘流’ stream
stream是Node.js提供的又一个仅在服务区端可用的模块,目的是支持“流”这种数据结构。我对这个流的理解就是:你的文件中的数据就可以看做是一种流,每条数据都是一条单独的数据流。
数据流的操作
**读取流**
首先利用fs 打开一个流,还是默认你的项目中有个data.txt文件
var rs = fs.createReadStream('data.txt');
rs.on('data',function(chunk){
console.log(chunk); //这个chuank就是你读取出来的流
})
//流既然有读取就有关闭
rs.on('end',function(){
console.log('end');
})
//有成功就有失败
rs.on('err',function(err){
console.log(err) //错误信息
})
**写入流**
//写入流和读取流操作差不多 都有创建结束... 但是写入流可以一直写入 知道end触发
var ws = fs.createWriteStream('data1.txt');
ws.write('我是有爱心的小蚂蚁');
ws.write('我准备结束写入了');
ws.end(); //写入结束
3.关于pipe
对于pipe的理解,我是这么认为的,就是类似于js中的拷贝或者是赋值,我a.txt中有的数据,可以通过pipe操作写入b.txt中,下面是操作:
var rs = fs.createReadStream('a.txt');
var ws = fs.createWriteStream('b.txt');
//记住 pipe操作必定是一读一写,不然数据从何来...
**rs.pipe(ws);** //这样b.txt中就存在了a.txt的数据
版权声明:本文为qq_26732261原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。