Heim > Artikel > Web-Frontend > Eine kurze Analyse gängiger Module im Knoten: Pfadmodul und FS-Modul
Es gibt viele integrierte Objekte in node, die uns bei der Durchführung vieler Vorgänge helfen können, einschließlich Vorgängen für Pfade, Dateien usw. Der folgende Artikel stellt Ihnen das Path-Modul und das FS-Modul vor, die zu den häufig verwendeten integrierten Modulen von Node gehören. Ich hoffe, es wird Ihnen hilfreich sein!
Das Pfadmodul wird zum Verarbeiten von Pfaden und Dateien verwendet und bietet viele Methoden.
Es besteht die Anforderung, den Pfad und den Dateinamen zu verketten.
const basePath = '/user/why' const filename = 'abc.txt'
Dann wird jemand String-Splicing zum Spleißen verwenden.
const filePath = basePath + '/' + filename console.log(filePath);
Obwohl dieses Ergebnis kein Problem darstellt, können Windows-Systeme bei unterschiedlichen Systemen entweder \ oder / als Pfadtrennzeichen verwenden, während Mac OS-, Linux- und Unix-Betriebssysteme / als Pfadtrennzeichen verwenden.
Um die oben genannten Probleme zu lösen, können wir path.resolve verwenden, um Pfade zu verbinden.
const path = require('path') const basePath = '/user/why' const filename = 'abc.txt' const filePath = path.resolve(basePath, filename) console.log(filePath);
const path = require('path') const filePath = '/User/haha/abc.txt' console.log(path.dirname(filePath)); console.log(path.basename(filePath)); console.log(path.extname(filePath));
Wenn wir mehrere Pfade verbinden möchten, verschiedene Betriebssysteme jedoch möglicherweise unterschiedliche Trennzeichen verwenden, können wir die Funktion path.join verwenden.
const path = require('path') const basepath = '/User/haha' const filename = 'abc.txt' const filePath = path.join(basepath, filename) console.log(filePath);
Wenn wir eine Datei und einen Ordner verbinden möchten, können wir path.resolve verwenden.
const basepath = 'User/haha' const filename = 'abc.txt'
path.resolve und path.join können auch zum Zusammenfügen von Pfaden verwendet werden. Was ist also der Unterschied?
const basepath = '../User/haha' const filename = './abc.txt' const othername = './haha.js' const filePath1 = path.join(basepath, filename, othername) console.log(filePath1); const filePath2 = path.resolve(basepath, filename, othername) console.log(filePath2);
Wir können den Unterschied sehen.
nodeJS Die meisten Dateisystem -APIs mit Dateisystemen bieten drei Betriebsmethoden:
Synchronous -Dateioperation: Der Code wird blockiert und führt nicht weiterhin
asynchronous Callback -Funktionen aus Datei: Der Code wird nicht blockiert. Wenn das Ergebnis erhalten wird, führt die Callback-Funktion eine asynchrone Promise-Operation aus fs.promises gibt ein Promise zurück, das dann verarbeitet und abgefangen werden kann.
const fs = require('fs') const filepath = './abc.txt' const info = fs.statSync(filepath) console.log('后续需要执行的代码'); console.log(info);
fs.stat(filepath, (err, info) => { if(err) { console.log(err); return } console.log(info); console.log(info.isFile()); // 判断是否是一个文件 console.log(info.isDirectory()); // 判断是否是一个文件夹 }) console.log('后续需要执行的代码');Methode drei: Versprechen
fs.promises.stat(filepath).then(info => { console.log(info); }).catch(err => { console.log(err); }) console.log('后续需要执行的代码');Dateideskriptor
fs.open() wird verwendet, um einen neuen Dateideskriptor fd zuzuweisen. Nach der Zuweisung kann der Dateideskriptor zum Lesen von Daten aus der Datei, zum Schreiben von Daten in die Datei oder zum Anfordern von Informationen über die Datei verwendet werden.
const fs = require('fs') fs.open('./abc.txt', (err, fd) => { if(err) { console.log(err); return } // 通过文件描述符去获取文件信息 fs.fstat(fd, (err, info) => { console.log(info); }) })Lesen und Schreiben von Dateien fs.readFile(path[, Optionen], Rückruf): Lesen Sie den Dateiinhalt
fs.writeFile('./abc.txt', content, {flag: "a"}, err => { console.log(err); })Lesen von Dateien
fs.readFile('./abc.txt', (err, data) => { console.log(data); })Wenn die Kodierung nicht ausgefüllt ist, wird der Ergebnispuffer (binär) zurückgegeben.
fs.readFile('./abc.txt', {encoding: 'utf-8'}, (err, data) => { console.log(data); })Ordner erstellenVerwenden Sie fs.mkdir() oder fs.mkdirSync, um einen neuen Ordner zu erstellen.
const fs = require('fs') // 创建文件夹 const dirname = './haha' if(!fs.existsSync(dirname)) { fs.mkdir(dirname, (err) => { console.log(err); }) }Holen Sie sich den Inhalt des Ordners
fs.readdir(dirname, (err, files) => { console.log(files); })Rufen Sie alle Dateien im Ordner ab. Zu diesem Zeitpunkt ist das Verzeichnis wie in der Abbildung unten gezeigt, und die Rekursion kann verwendet werden.
const fs = require('fs') const path = require('path') const dirname = './haha' function getFiles(dirname) { fs.readdir(dirname, {withFileTypes: true}, (err, files) => { // console.log(files); for(let file of files) { // 判断是否是文件夹 if(file.isDirectory()) { const filepath = path.resolve(dirname, file.name) getFiles(filepath) } else { console.log(file.name); } } }) } getFiles(dirname)
可以使用fs.rename对文件夹进行重命名。
fs.rename('./haha', './xixi', err => { console.log(err); })
更多node相关知识,请访问:nodejs 教程!
Das obige ist der detaillierte Inhalt vonEine kurze Analyse gängiger Module im Knoten: Pfadmodul und FS-Modul. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!