Heim > Web-Frontend > js-Tutorial > So kopieren Sie Dateien in Nodejs_node.js

So kopieren Sie Dateien in Nodejs_node.js

WBOY
Freigeben: 2016-05-16 15:11:14
Original
1511 Leute haben es durchsucht

Jedes Front-End-Kind weiß, dass JavaScript keine Berechtigung zum Betreiben von Festplattendateien hat, und Server-Kids haben es immer verachtet. Aber man kann sagen, dass Nodejs unser Front-End stolz macht. Ich habe kürzlich Node gelernt, und seine leistungsstarken Funktionen machen die Leute sehr aufgeregt. Heute habe ich gelernt, wie es Dateien liest und schreibt.

Zuerst müssen Sie das fs-Modul vorstellen, das mit nodejs geliefert wird.

var fs=require("fs");
Einzelheiten finden Sie in der Nodejs-API: http://www.w3cfuns.com/tools.php?mod=booknodejs

Es werden hauptsächlich zwei Methoden verwendet:

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

Dies ist das asynchrone Lesen von Dateien, Dateiname ist der Dateipfad, Kodierung ist das Kodierungsformat und Rückruf ist die Rückruffunktion.

Alle Inhalte einer Datei asynchron lesen, das Beispiel sieht wie folgt aus:

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

Hier verwende ich eine lokale Testdatei:

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('--------读取结束--------');
}
Nach dem Login kopieren

2. fs.writeFile(Dateiname, Daten, Kodierung='utf8', [Rückruf])
Datei schreiben:

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

Fehlercode: Datei 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();

Nach dem Login kopieren

Das Ergebnis der Ausführung von node copyFile.js im Terminal ist wie folgt:

Hinweis:

1. Zu Beginn habe ich direkt ein neues TXT-Dokument erstellt. Als ich es gelesen habe, stellte sich heraus, dass es beim Öffnen mit dem Editor verstümmelt war. Zweitens ist es am besten, die Codierung mitzubringen, da sonst entsprechend dem Puffer gelesen wird.

2. Synchrones Ausführungsproblem.

Es gibt ein Problem mit dem obigen Code. Ich habe die Dateilese- und -schreibmethoden ursprünglich in test2.txt kopiert, aber das Lesen der Datei erfolgt asynchron Das heißt, niemand weiß, wann es ausgeführt wird, daher ist das Ergebnis von test.txt undefiniert.

Die richtige Methode sollte darin bestehen, die Datei nach dem Lesen zu schreiben:

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();
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage