2

ユーザーがアップロードしたデータ ファイルを処理し、出力を返す必要がある Express 4 アプリケーションがあります。ファイルは比較的小さい (1 ~ 2 MB) ため、ディスクに保存するのではなく、直接メモリに (UTF-8 文字列変数として) アップロードしたいと考えています。

これまでに得た最も近いものはmulterモジュールとそのonFileUploadDataイベントですが、データを取得して別のファイルでルート ハンドラーに渡す方法がわかりません。

これは Node.js / Express で可能ですか?

4

1 に答える 1

6

質問の時点でこのオプションが利用可能だったかどうかはわかりませんが、現在は確かに利用可能です。multer で inMemory オプションを true に設定すると、バッファ オブジェクトが得られます。これが好き:

app.use(multer({
    dest: './uploads/',
    inMemory: true
}));

multer で使用可能なすべてのオプションは、https ://github.com/expressjs/multer#options で確認できます。


マルターのアップデート1.x

Multer バージョン 1.0.0 では、ストレージ エンジンの概念が導入され、2 つのデフォルト エンジンが付属しています:DiskStorageMemoryStorage.

これは、インスタンス化してファイルをメモリに保存する方法です。

multer({ storage: multer.memoryStorage({}) })
于 2014-11-15T23:08:00.020 に答える