Node.js实战12:fs模块高级技巧。
通过fs模块使用流
fs模块同样有流接口,如下例:
var fs = require("fs");
var read_able = fs.createReadStream("1.txt");
var write_able = fs.createWriteStream("2.txt");
read_able.pipe(write_able);
当这段代码执行时,会将1.txt中的内容通过pipe“同步”到2.txt中,相当于从1.txt中读取,再写入2.txt。
文件监视
例程:
var fs = require("fs");
fs.watchFile(__dirname+'/test12.js',{persistent: true, interval: 300},function(status){
if(status){
console.log(status);
}
});
test12.js即本例程代码,执行时,如果我们对文件做修改,则会有如下提示:

文件锁
使用文件锁,可以防止一个文件同时被多人做出修改,以导致文件内容损坏等问题。
- 使用独占标记创建锁文件
fs打开文件时,可以使用一个x标记,这个标记可以让文件以独占方式打开,即:你打开后,别人就不能再打开。
例程:
var fs = require("fs");
fs.open("test.txt","wx",function(err){
if(err) return console.error(err);
});
运行后,如果它人或其它进程等想再打开,会出现如下错误提示:

除非文件被关闭,否则,别人不能使用。
如何加入关闭?将代码稍做修改:
var fs = require("fs");
fs.open("test.txt","wx",function(err,fp){
if(err) return console.error(err);
fs.close(fp);
});

Node.js实战12:fs模块高级技巧。的更多相关文章
- Node.js实战2:模块使用入门。
NodeJS有丰富的三方模块,借助这些模块,可以快速的开发各类应用.这使用Nodejs可以进行很便捷.快速的开发. 1.安装与加载模块内核.三方 使用npm可以搜索.安装.卸载模块. 例: 搜索模块 ...
- 【译】 Node.js v0.12的新特性 -- 性能优化
原文: https://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/ January 21, 2014/in Comm ...
- 【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡
原文:https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing 本 ...
- Node.js V0.12新特性之性能优化
v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化.本文会介绍其中最值得注意的几个. 支持塞住模式的可写流 现在可写流可以 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源
视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 视图Nunjucks
视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据 ...
- node.js中的fs.rename()方法
node.js 中的fs.rename()模块 var fs=require('fs');//node.js的核心模块 原生模块.修改文件名称,可更改文件的存放路径 方法说明 : 修改文件名称,可更改 ...
随机推荐
- 下载zip
- 组件通信 $ref
(1)放在dom上表示获取当前dom元素, (2)放到组件上表示获取当前组件实例 (3)在v-for中获取的是集合 <!DOCTYPE html> <html lang=" ...
- nginx图片过滤处理模块http_image_filter_module
nginx图片过滤处理模块http_image_filter_module安装配置笔记 http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54 ...
- 【leetcode】1154. Day of the Year
题目如下: Given a string date representing a Gregorian calendar date formatted as YYYY-MM-DD, return the ...
- 【leetcode】1163. Last Substring in Lexicographical Order
题目如下: Given a string s, return the last substring of s in lexicographical order. Example 1: Input: & ...
- 【leetcode】390. Elimination Game
题目如下: 解题思路:对于这种数字类型的题目,数字一般都会有内在的规律.不管怎么操作了多少次,本题的数组一直是一个等差数列.从[1 2 3 4 5 6 7 8 9] -> [2 4 6 8] - ...
- 微信小程序-tabBar-注意事项
tabBar.list[0].selectedIconPath 文件格式错误,仅支持 .png..jpg..jpeg 格式
- CSS-动画,让图片上的图形有涨起来的效果(逐渐变高)和(逐渐变长)
效果图: html: <div class="inner3"> <div class="over"> <img src=" ...
- #452 Div2 Problem C Dividing the numbers ( 思维 || 构造 )
题意 : 将从 1 ~ n 的数分成两组,要求两组和的差值尽可能小,并输出其中一组的具体选数情况 分析 : 如果将这 n 个数从大到小四个一组来进行选择的话那么差值就为 0 ,然后再来考虑 n%4 ! ...
- POJ 1011 Sticks(搜索 && 剪枝 && 经典)
题意 : 有n根木棍(n<=64),它们由一些相同长度的木棍切割而来,给定这n根木棍的长度,求使得原来长度可能的最小值. 分析 : 很经典的深搜题目,我们发现答案只可能是所有木棍长度总和的因数, ...