Maison > interface Web > js tutoriel > le corps du texte

Comment Node.js utilise-t-il le module de système de fichiers ? Introduction aux méthodes de module fs couramment utilisées

青灯夜游
Libérer: 2021-08-24 09:37:09
avant
2738 Les gens l'ont consulté

Cet article vous présentera le module de système de fichiers dans Node.js, vous expliquera comment utiliser le module de système de fichiers (module fs) et présentera certaines des méthodes fs les plus courantes et les plus utiles.

Comment Node.js utilise-t-il le module de système de fichiers ? Introduction aux méthodes de module fs couramment utilisées

Le module du système de fichiers (fs en abrégé) nous permet d'accéder et d'interagir avec le système de fichiers sur notre ordinateur. [Apprentissage recommandé : "nodejs tutorielfs)允许我们访问计算机上的文件系统并与之交互。【推荐学习:《nodejs 教程》】

使用 fs 模块,我们可以执行以下操作:

  • 创建文件和目录
  • 修改文件和目录
  • 删除文件和目录
  • 读取文件和目录的内容
  • ...

建议:文件系统模块比较复杂,建议查看官方文档,你可以看到所有的方法。

本文将向您介绍最常见和最有用的 fs 方法。事不宜迟,让我们看看这些方法是什么。

如何使用 fs

文件系统模块是一个核心的 Node.js 模块。这意味着我们不必安装它。我们唯一需要做的就是将 fs 模块导入到自己的文件中。

因此,在文件顶部添加:

const fs = require('fs')
Copier après la connexion

现在,我们可以使用前缀 fs 从文件系统模块调用任何方法。

或者,我们可以只从 fs API 导入所需的方法,如下所示:

const { writeFile, readFile } = require('fs')
Copier après la connexion

注意:为了方便起见,我们还需要导入 path 模块。它是另一个核心 Node.js 模块,它允许我们使用文件和目录路径。

导入 fs 模块后,在文件中添加:

const path = require('path')
Copier après la connexion

使用文件系统模块时,path 模块不是必需的。但它对我们有很大的帮助!

同步与异步

需要注意的是,默认情况下,所有 fs 方法都是异步的。但是,我们可以通过在方法末尾添加 Sync 来使用同步版本。

例如,writeFile 方法的同步版本为 writeFileSync。同步方法将同步的完成代码,因此它们阻塞了主线程。阻塞 Node.js 中的主线程被认为是不好的做法,我们不应该这么做。

因此,以下我们都将使用文件系统模块中的异步方法。

写入文件

要从 Node.js 应用程序写入文件,请使用 writeFile 方法。

writeFile 方法至少接受以下参数:

  • 文件名
  • 内容
  • 回调

如果指定的文件已经存在,它会将旧内容替换为您作为参数提供的内容。如果指定的文件不存在,则创建一个新文件。

导入 fspath 模块后,在文件中编写以下代码:

fs.writeFile('content.txt', 'All work and no play makes Jack a dull boy!', err => {
  if (err) throw err

  process.stdout.write('创建成功!')
})
Copier après la connexion

上面的代码将创建了一个名为 content.txt 的新文件,并添加了文本 All work and no play makes Jack a dull boy! 作为内容。如果存在任何错误,回调函数将抛出该错误。否则,它将向控制台输出文件创建成功。

writeFile 还有其他变体,例如:

  • fs.writeFileSync — 同步写入文件
  • fsPromises.writeFile — 使用基于 Promise 的 API 写入文件

查看此要点:https://gist.github.com/catalinpit/571ba06c06214b5c8744036c6500af92

从文件中读取

在读取文件之前,需要创建并存储文件的路径。path 模块的路径在这里很方便。

使用 join 模块中的 path 方法,您可以创建文件路径,如下所示:

const filePath = path.join(process.cwd(), 'content.txt')
Copier après la connexion

第一个参数 process.cwd() 返回当前工作目录。现在您已经有了文件路径,可以读取文件的内容了。

在文件中编写以下代码:

fs.readFile(filePath, (error, content) => {
  if (error) throw error

  process.stdout.write(content)
})
Copier après la connexion

readFile 方法至少接受两个参数:

  • 文件的路径
  • 回调

如果有错误,它会抛出一个错误。否则,它会在终端中输出文件内容。

readFile 还有其他变体,例如:

  • fs.readFileSync — 同步写入文件
  • fsPromises.readFile"]
Utilisez fs, nous pouvons effectuer les opérations suivantes :
  • Créer des fichiers et des répertoires

  • Modifier des fichiers et des répertoires

  • Supprimer des fichiers et des répertoires 🎜
  • Lire des fichiers et des répertoires Le contenu de 🎜
  • ...🎜🎜🎜🎜Suggestion : Le module du système de fichiers est relativement complexe, il est recommandé de vérifier Documentation officielle 🎜, vous pouvez voir toutes les méthodes. 🎜
🎜Cet article vous présentera les méthodes fs les plus courantes et les plus utiles. Sans plus tarder, voyons quelles sont ces méthodes. 🎜

Comment utiliser fs

🎜Le module de système de fichiers est un module principal de Node.js. Cela signifie que nous n'avons pas besoin de l'installer. La seule chose que nous devons faire est d'importer le module fs dans son propre fichier. 🎜🎜Donc en haut du fichier, ajoutez : 🎜
fs.readdir(process.cwd(), (error, files) => {
  if (error) throw error

  console.log(files)
})
Copier après la connexion
Copier après la connexion
🎜 Nous pouvons maintenant appeler n'importe quelle méthode depuis le module du système de fichiers en utilisant le préfixe fs. 🎜🎜 Alternativement, nous pouvons simplement importer les méthodes requises depuis l'API fs comme suit : 🎜
fs.unlink(filePath, error => {
  if (error) throw error

  console.log('文件已删除!')
})
Copier après la connexion
Copier après la connexion
🎜🎜REMARQUE : Pour plus de commodité, nous devons également importer path module. Il s'agit d'un autre module principal de Node.js qui nous permet de travailler avec des chemins de fichiers et de répertoires. 🎜🎜Après avoir importé le module fs, ajoutez dans le fichier : 🎜
fs.mkdir(`${process.cwd()}/myFolder/secondFolder`, { recursive: true }, (err) => {
  if (err) throw err

  console.log('已成功创建文件夹!')
})
Copier après la connexion
Copier après la connexion
🎜Le module path n'est pas nécessaire lors de l'utilisation du module système de fichiers. Mais ça nous aide beaucoup ! 🎜

Synchronisation et asynchrone

🎜Il est à noter que, par défaut, toutes les méthodes fs sont asynchrones de . Cependant, nous pouvons utiliser la version synchronisée en ajoutant Sync à la fin de la méthode. 🎜🎜Par exemple, la version synchrone de la méthode writeFile est writeFileSync. Les méthodes synchrones complètent le code de manière synchrone, elles bloquent donc le thread principal. Bloquer le thread principal dans Node.js est considéré comme une mauvaise pratique et nous ne devrions pas le faire. 🎜🎜Donc, ci-dessous, nous utiliserons tous les méthodes asynchrones du module de système de fichiers. 🎜

Write File

🎜Pour écrire un fichier à partir d'une application Node.js, utilisez la méthode writeFile. 🎜🎜La méthodewriteFile accepte au moins les paramètres suivants : 🎜
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!