3

sqlite3モジュールを使用してインメモリ SQLite データベースを作成し、モジュールを使用adm-zipしてそれを zip ファイルに保存しようとしています。adm-zipこれまでのところ、メモリ内データベースを作成してデータを追加することはできましたが、ファイル、バッファ、または文字列のいずれかが必要なため、作成された zip に保存する方法を見つけることができませんでした。

私の質問は次のとおりです。sqlite3モジュールはバッファとしての保存または保存をサポートしていますか? そうでない場合、スクリプトが必須モジュールとコマンド ライン スクリプトの両方として使用されている場合、一時ファイルを Node.js に格納するための推奨されるソリューションは何でしょうか?

以下でテストするために使用したコードと、クローン可能な要点を含めました。

main.js

var fs = require('fs'),
    admzip = require('adm-zip'),
    sqlite3 = require('sqlite3').verbose(),
    zip = new admzip(),
    db = new sqlite3.Database('test.sqlite');
    // db = new sqlite3.Database(':memory:');

db.serialize(function() {

    db.run('CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY, name TEXT);');
    db.run('INSERT OR IGNORE INTO test(name) VALUES ("neogeek");');

});

zip.addFile('README.md', '#SQLite3 + ADM-ZIP Test');

// zip.addFile('db.sqlite', db);

db.close();

fs.writeFileSync('test.zip', zip.toBuffer(), 'utf8');

パッケージ.json

{
    "private": true,
    "dependencies": {
        "sqlite3": "3.0.2",
        "adm-zip": "0.4.4"
    }
}

https://gist.github.com/neogeek/70c80c7ddaf998bee4bd

4

1 に答える 1