Node.js复制文件的方法示例
本文实例讲述了Node.js复制文件的方法。分享给大家供大家参考,具体如下:
本人开发过程中,经常遇到,要去拷贝模板到当前文件夹,经常要去托文件,为了省事,解决这个问题,写了一个node复制文件。
// js/app.js:指定确切的文件名。 // js/*.js:某个目录所有后缀名为js的文件。 // js/**/*.js:某个目录及其所有子目录中的所有后缀名为js的文件。 // !js/app.js:除了js/app.js以外的所有文件。 // *.+(js|css):匹配项目根目录下,所有后缀名为js或css的文件。 //流 stream 管道 pipe 管道 //如果想在读取流和写入流的时候做完全的控制,可以使用数据事件。但对于单纯的文件复制来说读取流和写入流可以通过管道来传输数据。 var fs = require("fs"); var path = require("path"); /* * 复制目录中的所有文件包括子目录 * @src param{ String } 需要复制的目录 例 images 或者 ./images/ * @dst param{ String } 复制到指定的目录 例 images images/ */ //获取当前目录绝对路径,这里resolve()不传入参数 var filePath = path.resolve(); var copy = function(src,dst){ //判断文件需要时间,则必须同步 if(fs.existsSync(src)){ fs.readdir(src,function(err,files){ if(err){console.log(err);return;} files.forEach(function(filename){ //url+"/"+filename不能用/直接连接,Unix系统是”/“,Windows系统是”“ var url = path.join(src,filename), dest = path.join(dst,filename); console.log(url); console.log(dest); fs.stat(path.join(src,filename),function(err, stats){ if (err) throw err; //是文件 if(stats.isFile()){ //创建读取流 readable = fs.createReadStream(url); //创建写入流 writable = fs.createWriteStream(dest,{ encoding: "utf8" }); // 通过管道来传输流 readable.pipe(writable); //如果是目录 }else if(stats.isDirectory()){ exists( url, dest, copy ); } }); }); }); }else{ console.log("给定的目录不存,读取不到文件"); return; } } function exists(url,dest,callback){ fs.exists(dest,function(exists){ if(exists){ callback && callback(url,dest); }else{ //第二个参数目录权限 ,默认0777(读写权限) fs.mkdir(dest,0777,function(err){ if (err) throw err; callback && callback(url,dest); }); } }); } exports.copy = copy; //copy("./views/","./www/"); copy("./../jdcase/homeappliances/",filePath);
希望本文所述对大家nodejs程序设计有所帮助。
Node.js的Mongodb使用实例
安装mongodb模块npminstall--savemongodb数据库连接varMongoClient=require('mongodb').MongoClient;varassert=require('assert');//连接test数据库varurl='mongodb://localhost:27017/test';MongoCli
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
http模块内部封装了http服务器和客户端,因此Node.js不需要借助Apache、IIS、Nginx、Tomcat等传统HTTP服务器,就可以构建http服务器,亦可以用来做一些爬虫。
Node.js中如何合并两个复杂对象详解
前言相信大家都知道在通常情况下,在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来
编辑:广州鸿名健康科技有限公司
标签:文件,目录,管道,后缀,要去