Nodejs如何复制文件_node.js

前端童鞋都知道,javascript是没有权限操作磁盘文件的,server童鞋一向都很鄙视。但是nodejs可谓让咱们前端扬眉吐气啊,最近在学node,其强大的功能让人异常激动和兴奋。今天就学习了它怎么读写文件。

首先需要引入fs模块,这是nodejs自带的。

var fs=require("fs");
具体可参考Nodejs API:http://www.w3cfuns.com/tools.php?mod=booknodejs

主要用到了两个方法:

1、fs.readFile(filename, [encoding], [callback])

这是异步读取文件,filename是文件路径,encoding是编码格式,callback是回调函数。

异步读取一个文件的所有内容,例子如下:

fs.readFile('/etc/passwd', function (err, data) {
 if (err) throw err;
 console.log(data);
});

这里我使用的是本地测试文件:

function readFile(){
  console.log('--------开始读取文件--------');
  var fs = require('fs');
  fs.readFile('test.txt', 'utf-8', function(err, data) {
    if (err) {
      console.log("读取失败");
    } else {
      console.log(data);
      return data;
    }
  });
  console.log('--------读取结束--------');
}

2、fs.writeFile(filename, data, encoding='utf8', [callback])
写文件:

function writeFile(data){
  fs.writeFile("test2.txt",data,function(error){
    if(error){
      throw error;
    }else{
      console.log("文件已保存");
    }
  });
}

错误代码:copyFile.js文件

var fs=require("fs");
function readFile(){
  console.log('--------开始读取文件--------');
  var fs = require('fs');
  fs.readFile('test.txt', 'utf-8', function(err, data) {
    if (err) {
      console.log("读取失败");
    } else {
      console.log(data);
      return data;
    }
  });
  console.log('--------读取结束--------');
}

function writeFile(data){
  fs.writeFile("test2.txt",data,function(error){
    if(error){
      throw error;
    }else{
      console.log("文件已保存");
    }
  });
}
function copyFile(){
  var txt=readFile();
  writeFile(txt);
}
copyFile();

在终端运行node copyFile.js结果如下:

注意事项:

1、文件编码,开始的时候我直接在本地新建一个txt文档,读取的时候发现结果始终是aaaaaaa这样的,结果发现用编辑打开是时候里面是乱码,其次,最好带上encoding,否则它会按照buffer读取。

2、同步执行问题。

上面的代码是有问题的,我把读取文件和写入文件方法分开写的,本来是想把test.txt文件中的内容复制到test2.txt,但是读取文件是异步执行的,也就是说谁也不知道它何年马月执行完毕,所以test.txt得到的结果是undefined。

正确的方法应该是读取完毕后执行写入文件:

var fs=require("fs");
function copyFile(){
  console.log('--------开始读取文件--------');
  var fs = require('fs');
  fs.readFile('test.txt', 'utf-8', function(err, data) {
    if (err) {
      console.log("读取失败");
    } else {
      writeFile(data)
      return data;
    }
  });
  console.log('--------读取结束--------');
}

function writeFile(data){
  console.log(data);
  fs.writeFile("test2.txt",data,'utf8',function(error){
    if(error){
      throw error;
    }else{
      console.log("文件已保存");
    }
  });
}

copyFile();

以上就是本文的全部内容,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索nodejs
复制文件
nodejs复制文件、nodejs 复制文件夹、nodejs fs 复制文件、nodejs 同步复制文件、nodejs 复制对象,以便于您获取更多的相关知识。

时间: 2024-10-31 21:40:36

Nodejs如何复制文件_node.js的相关文章

nodejs调用cmd命令实现复制目录_node.js

工作中一直需要对一些官网进行文件复制,并且替换内部的一些信息,以前都是手动操作的,或者通过自己写的firefox扩展来进行文件操作的. 现在前端有nodejs了,为什么不用nodejs写个一键式的呢~~ 1.复制目录 复制文件的时候,如果直接创建一个不存在的文件目录下就不成功了.要上级目录存在才可以.(nodejs API接触时间不长,如有有误,谢谢指正). 这样在写入文件的时候就检测一下目录是否存在,不存在则判断上级目录,之后一级一级目录创建回来,之后就可以复制文件了 var dirCache

实例详解Nodejs 保存 payload 发送过来的文件_node.js

1接受文件 http://stackoverflow.com/questions/24610996/how-to-get-uploaded-file-in-node-js-express-app-using-angular-file-upload 可以用下列的第三方库 •busboy and connect-busboy •multiparty and connect-multiparty •formidable •multer 2保存文件 psnodejs get/request 灌水评论示例

使用nodejs开发cli项目实例_node.js

1.分分钟使用默认选项安装完nodejs 2.分分钟使用sudo npm install -g yo安装完yeoman 3.通过sudo npm install -g generator-cli-starter安装cli开发脚手架 OK, 现在我们可以使用yo cli-starter命令开始我们cli开发之旅了 创建cli项目 复制代码 代码如下: yo cli-starter 按照提示输入项目名称.命令名称,完成cli项目创建.后续的教程中我们将使用hi作为你的命令名称,如果你使用了其他命令名

nodejs初步体验篇_node.js

前言:写这篇文章的由来: 1.前段时间单位有新项目启动,服务端要做的工作不多也不算麻烦,就是处理一些中间层的服务,而且我们团队里面个个都会JavaScript,领导就决定试试服务器端的JavaScript,结果本人有幸被派去研究了几天Node,怀着鸡冻的心情开始了node.js的篇章,这篇文章也就是为这几天研究的总结. 2.一个JavaScript工程师如果没听过node.js那么我想你是不是错过了什么,每个优秀的前端工程师都有必要去了解后台处理流程,那么如果又能从JavaScript出发,岂不

nodejs教程之入门_node.js

前言 再不学nodeJs,我们就老了......在HTML5大浪袭来的时候,很多先辈就开始了NodeJs之旅,而那时我还在做服务器端的程序 后来转成前端,和梯队的距离已经很大了,因为我会服务器端语言,还干了很久,所以至今才开始学习NodeJs,向完整的前端前进 这次学习NodeJs的计划是: ① 1-2周学习基础知识 ② 1周左右开发一个简单项目 ③ 利用NodeJs开发一套用于移动端调试的工具 ④ 打包相关(这个可能比较远了) NodeJs特点 ① 异步 从文件读取到网络请求,NodeJs皆以

nodejs开发微博实例_node.js

之前一直执着于前端开发,最近几天,开始学起了nodejs.作为一名前端开发者,见到这样一门用javascript写的后台自然是很激动的.但是,后台毕竟不同于前端,在学习的过程中,还是会遇到不少问题. 为了开始学习nodejs,一开始选择了<深入浅出nodejs>这本书,看了几章之后,得出一个结论是:真是一本好书,但是还是不会写nodejs!然后选择了另外一本教材<nodejs开发指南>,由于看过了<深入浅出nodejs>,直接跳过了这本书的前几章,写起了该书第五章的微博

node.js抓取并分析网页内容有无特殊内容的js文件_node.js

nodejs获取网页内容绑定data事件,获取到的数据会分几次相应,如果想全局内容匹配,需要等待请求结束,在end结束事件里把累积起来的全局数据进行操作! 举个例子,比如要在页面中找有没有www.baidu.com,不多说了,直接放代码: //引入模块 var http = require("http"), fs = require('fs'), url = require('url'); //写入文件,把结果写入不同的文件 var writeRes = function(p, r)

iPhone手机上搭建nodejs服务器步骤方法_node.js

一.为在ios上面运行,编译jxcore 复制代码 代码如下: $ mkdir ~/jxcore  $ cd ~/jxcore  $ git clone https://github.com/jxcore/jxcore.git  复制代码 代码如下: $ cd ~/jxcore/jxcore  $ ./build_scripts/ios-compile.sh  如果出现import which的module not found问题, 那就通过下面语句安装python的which 复制代码 代码如

node.js开机自启动脚本文件_node.js

复制代码 代码如下: #!/bin/bash ### BEGIN INIT INFO # Provides:       xiyoulib # Required-Start:   $all # Required-Stop:     $all # Default-Start:     2 3 4 5 # Default-Stop:   0 1 6 # Short-Description: Start daemon at boot time # Description:     Enable ser