Rumah > hujung hadapan web > tutorial js > Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

青灯夜游
Lepaskan: 2022-04-26 21:12:29
ke hadapan
2371 orang telah melayarinya

Terdapat banyak objek terbina dalam dalam nod, yang boleh membantu kami melaksanakan banyak operasi, termasuk operasi pada laluan, fail, dsb. Artikel berikut akan memperkenalkan kepada anda modul laluan dan modul fs antara modul terbina dalam yang biasa digunakan saya harap ia akan membantu anda.

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

modul laluan

Modul laluan digunakan untuk memproses laluan dan fail, menyediakan banyak kaedah.

path.resolve

Terdapat keperluan untuk menyambung laluan dan nama fail.

const basePath = '/user/why'
const filename = 'abc.txt'
Salin selepas log masuk

Kemudian seseorang akan menggunakan penyambungan rentetan untuk penyambungan.

const filePath = basePath + '/' + filename
console.log(filePath);
Salin selepas log masuk

Walaupun tiada masalah dengan hasil ini, memandangkan sistem yang berbeza, sistem Windows boleh menggunakan sama ada \ atau / sebagai pemisah laluan, manakala sistem pengendalian Mac OS, Linux dan Unix menggunakan / sebagai simbol pemisah laluan .

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

Untuk menyelesaikan masalah di atas, kita boleh menggunakan path.resolve untuk menyambung laluan.

const path = require('path')

const basePath = '/user/why'
const filename = 'abc.txt'

const filePath = path.resolve(basePath, filename)

console.log(filePath);
Salin selepas log masuk

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

Dapatkan maklumat daripada laluan

  • dirname: Dapatkan folder induk fail
  • nama asas: Dapatkan nama fail
  • nama ext: Dapatkan sambungan fail
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));
Salin selepas log masuk

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

Penyambungan laluan

Jika kita ingin menyambung berbilang laluan, tetapi sistem pengendalian yang berbeza mungkin menggunakan pemisah yang berbeza, kita boleh menggunakan fungsi gabungan laluan.

const path = require('path')

const basepath = '/User/haha'
const filename = 'abc.txt'

const filePath = path.join(basepath, filename)
console.log(filePath);
Salin selepas log masuk

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

Sambung fail dan folder

Jika kami mahu menyambung fail dan folder , anda boleh gunakan jalan.menyelesaikan.

const basepath = 'User/haha'
const filename = 'abc.txt'
Salin selepas log masuk

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

path.resolve dan path.join juga boleh digunakan untuk menyambung laluan, jadi apakah perbezaannya?

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);
Salin selepas log masuk

Kita boleh nampak perbezaannya.

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

modul fs

nodejsAPI sistem fail kebanyakannya menyediakan tiga kaedah operasi:

  • Kendalian fail segerak: kod akan disekat dan tidak akan meneruskan pelaksanaan

  • Kendalian fail fungsi panggil balik tak segerak: kod tidak akan disekat dan panggilan balik memerlukan untuk dihantar dalam Fungsi, apabila keputusan diperoleh, fungsi panggil balik melaksanakan

  • Fail operasi Asynchronous Promise: kod tidak akan disekat operasi kaedah panggilan melalui fs.promises akan kembali a Janji, yang boleh dilalui kemudian, tangkap untuk diproses.

Baca status fail (maklumat)

Kaedah 1 operasi penyegerakan: fs.statSync

const fs = require('fs')

const filepath = './abc.txt'
const info = fs.statSync(filepath)
console.log('后续需要执行的代码');
console.log(info);
Salin selepas log masuk

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

Kaedah 2 operasi tak segerak

fs.stat(filepath, (err, info) => {
  if(err) {
    console.log(err);
    return
  }
  console.log(info);
  console.log(info.isFile()); // 判断是否是一个文件
  console.log(info.isDirectory()); // 判断是否是一个文件夹
})
console.log('后续需要执行的代码');
Salin selepas log masuk

Kaedah 3: Janji

fs.promises.stat(filepath).then(info => {
  console.log(info);
}).catch(err => {
  console.log(err);
})

console.log('后续需要执行的代码');
Salin selepas log masuk

Penerangan fail

nod ialah Semua fail terbuka diberikan nombor jenis penerangan fail. Semua operasi sistem fail menggunakan deskriptor fail ini untuk mengenal pasti dan menjejaki setiap fail tertentu.

Kaedah fs.open() digunakan untuk memperuntukkan deskriptor fail baharu fd. Setelah diperuntukkan, deskriptor fail boleh digunakan untuk membaca data daripada fail, menulis data ke fail atau meminta maklumat tentang fail.

const fs = require('fs')

fs.open('./abc.txt', (err, fd) => {
  if(err) {
    console.log(err);
    return
  }

  // 通过文件描述符去获取文件信息
  fs.fstat(fd, (err, info) => {
    console.log(info);
  })
})
Salin selepas log masuk

Membaca dan menulis fail

fs.readFile(path[, options], callback): Baca kandungan fail

fs. writeFile (path[, options], callback): Tulis kandungan pada fail

parameter pilihan:

bendera: Kaedah penulisan

pengekodan: Pengekodan aksara

Penulisan fail

fs.writeFile('./abc.txt', content, {flag: "a"}, err => {
  console.log(err);
})
Salin selepas log masuk

Membaca fail

fs.readFile('./abc.txt', (err, data) => {
  console.log(data);
})
Salin selepas log masuk

Jika pengekodan tidak diisi, hasil Penimbal (perduaan) akan dikembalikan.

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

fs.readFile('./abc.txt', {encoding: 'utf-8'}, (err, data) => {
  console.log(data);
})
Salin selepas log masuk

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

Buat folder

Gunakan fs.mkdir() atau fs . mkdirSync mencipta folder baharu.

const fs = require('fs')

// 创建文件夹
const dirname = './haha'
if(!fs.existsSync(dirname)) {
  fs.mkdir(dirname, (err) => {
    console.log(err);
  })
}
Salin selepas log masuk

Dapatkan kandungan folder

fs.readdir

fs.readdir(dirname, (err, files) => {
  console.log(files);
})
Salin selepas log masuk

Dapatkan semua fail dalam folder, direktori ialah seperti berikut Seperti yang ditunjukkan dalam rajah, rekursi boleh digunakan.

Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs

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)
Salin selepas log masuk

重命名

可以使用fs.rename对文件夹进行重命名。

fs.rename('./haha', './xixi', err => {
  console.log(err);
})
Salin selepas log masuk

更多node相关知识,请访问:nodejs 教程

Atas ialah kandungan terperinci Analisis ringkas modul biasa dalam nod: modul laluan dan modul fs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan