网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 Nodejs如何复制文件
内容
    这篇文章主要为大家详细介绍了Nodejs如何复制文件的过程,感兴趣的小伙伴们可以参考一下
    前端大家都知道,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();
    以上就是本文的全部内容,希望对大家的学习有所帮助。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 13:46:51