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('后续需要执行的代码');
fs.promises.stat(filepath).then(info => { console.log(info); }).catch(err => { console.log(err); }) console.log('后续需要执行的代码');
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); }) })
fs.writeFile('./abc.txt', content, {flag: "a"}, err => { console.log(err); })
fs.readFile('./abc.txt', (err, data) => { console.log(data); })
fs.readFile('./abc.txt', {encoding: 'utf-8'}, (err, data) => { console.log(data); })
const fs = require('fs') // 创建文件夹 const dirname = './haha' if(!fs.existsSync(dirname)) { fs.mkdir(dirname, (err) => { console.log(err); }) }
fs.readdir(dirname, (err, files) => { console.log(files); })
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!