Posted at

fs Promises API でプロミスを使ってファイル読み書きする

Node.js の基本的な API である、 fsPromise 対応モジュールが追加されました。


fs Promises API

Node.js の API ドキュメント: fs Promises API


The fs.promises API provides an alternative set of asynchronous file system methods that return Promise objects rather than using callbacks. The API is accessible via require('fs').promises.


今まで、

const fs = require('fs')

としていたところを、

const fs = require('fs').promises

とするだけで、 async / await 対応のコードを書くことができるようになります。


ファイルの読み込み

try {

const content = await fs.readFile('some_file.txt', 'utf-8')
} catch (error) {
console.error(error)
}


ファイルの書き込み

try {

const content = 'test'

await fs.writeFile('some_file.txt', content)
} catch (error) {
console.error(error)
}


import 文で読み込む場合

--experimental-modules-r esm、または Babel などで ESM に対応させる場合は、 import 文で次のように書けます。

import { promises as fs } from 'fs'

簡単ですね!

皆さんも、コールバック書くのをやめて Promiseasync / await に書き換えましょう!