@unikvs/fs.node
Node.js のローカルファイルシステムにバイト列を保存する @unikvs/fs.node の使い方を説明します。
概要
@unikvs/fs.node はローカルファイルシステムにバイト列を保存するストレージプラグインです。Node.js 専用 単一ノードでの永続化や、開発時の簡易な保存先として使います。
nameは"NodeFs"で、isOpenで開閉状態を確認します。open()でルートディレクトリーを作成して開きます。close()はありません。- キーはファイル名としてそのまま保存します。書き込みは一時ファイルへの書き出しと完了時のリネームで原子的に行います。
インストールは次のコマンドで行います。
npm install @unikvs/fs.nodepnpm add @unikvs/fs.nodeyarn add @unikvs/fs.nodebun add @unikvs/fs.nodenub add @unikvs/fs.nodeaube add @unikvs/fs.node使い方
NodeFs は IStorage を実装しています。UniKvs には persist() で渡します。
import { NodeFs } from "@unikvs/fs.node";
NodeFs
ローカルファイルシステムに保存するストレージです。利用者は open() で開いてから使います。
コンストラクターの引数は次のとおりです。
プロパティ型
NodeFsOptions
将来の拡張用のオプション型です。現在は空のオブジェクトで、指定できる項目はありません。
以下は、値を保存して読み戻す例です。
import { NodeFs } from "@unikvs/fs.node";
import * as unikvs from "unikvs";
const kvs = new unikvs.Builder<{ file: unikvs.Value<Uint8Array> }>()
.persist(new NodeFs("./data"))
.build();
await kvs.open();
await kvs.set("file", new Uint8Array([0, 1, 2]));
const data = await kvs.get("file");
console.log(data); // Uint8Array(3) [0, 1, 2]
データ型
| 操作 | 対応するデータ型 |
|---|---|
write・read |
Uint8Array<ArrayBuffer> |
getWritable・getReadable のチャンク |
Uint8Array<ArrayBuffer> |
write・readにはバイト列 (Uint8Array<ArrayBuffer>) を使います。- キーはファイル名として検証され、パス区切りなどを含むキーは拒否されます。
- ストリームの読み書きに対応し、チャンクは
Uint8Array<ArrayBuffer>です。 - 書き込みは一時ファイルへの書き出しと完了時のリネームで原子的に行われ、並行書き込みでも一時ファイルが衝突しません。
エラー
このパッケージ固有のエラーはありません。存在しないキーを読み取ったり削除したりすると、ENOENT のシステムエラーで失敗します。