駆け出しのエンジニア日記

プログラミング言語勉強中の奮闘日記

fsモジュール

fsモジュールについて説明します。

「fs」は、ファイルシステムのことです。

Node.jsでファイルを操作するための公式モジュールとして提供されています。

ファイルを新規作成したり、読み込み・書き込みから追記・削除まで、一般的に必要な機能はあらかじめ用意されています。そのため、Node.jsが使える環境さえあればすぐにでも実行が可能です。

 

まず最初に、fsモジュールを利用できるようにする必要があります。

 const fs = require('fs');

※letでも可

上記のように記述することで、これ以降は「fs」を使ってさまざまなメソッドを使用できます。

また、もう一つ先に説明しておくことがあります。

例えば・・・

mkdir」と「mkdirSync」が存在します。

大きな相違点としては、「同期処理」か「非同期処理」の違いとなります。

mkdir」・・・非同期処理

mkdirSync」・・・同期処理

「同期処理」か「非同期処理」については以前の日記に書いたPromiseの内容を見てもらえれば大丈夫かと思います。

早速サンプルとして、htmlファイル、cssファイル、jsファイルを自動で作成してくれるようなスクリプトを書いてみます。

const fs = require('fs');
const dirName = process.argv[2] || 'Project';
 
try {
fs.mkdirSync(dirName);
fs.writeFileSync(`${dirName}/index.html`, '');
fs.writeFileSync(`${dirName}/app.js`, '');
fs.writeFileSync(`${dirName}/app.css`, '');
} catch (error) {
console.log('問題が発生しました!!!');
console.log(error);
}

このように自動でファイル作成してくれるスクリプトを記述できます。

 

2行目の「 process.argv[2] || 'Project ' 」について解説します。

process.argvはコマンドライン引数の取得ができます。

コマンドライン引数は、ターミナルなどで実行する時に、実行時にプログラムに値を渡すことが出来る引数(値)のことです。

今回のnode.jsで言うと、ターミナルで実行する際に下記のように入力します。

               node 作成したjsファイル(〜.js)  hoge(例)
 インデント: 0                    1 2

作成したjsファイルに続く新しい引数を用意することになります。

なので上記の[2]という数字も、作成したjsファイルの次に設定した引数名のディレクトリの中にhtmlファイル、cssファイル、jsファイルが作成されます。そして引数に何も設定をしなければ、「Project」という名前で同じ動作が行われます。

そして「writeFileSync」についても簡単に解説します。

writeFileSync( 第一引数:書き出すファイルパス , 第二引数:データ )を用いて、ファイルを書き込みます。

※今回はサンプルなので''(空文字)で設定しています。

そして念のため、try〜catchのエラー処理も記述してあります。

今回自分が作成したものが下記です。

node boilerplate.js Portfolio

で「Portfolio」ディレクトリを作成し、その中に各種ファイルを自動作成できたことが確認できます。

 

File Systemのドキュメントも貼り付けたので参考にしてみてください。

nodejs.org