Я пытаюсь использовать модуль sqlite3
для создания базы данных SQLite в памяти и модуля adm-zip
, чтобы сохранить его в zip-файле. До сих пор мне удалось создать базу данных в памяти и добавить к ней данные, но мне не удалось найти способ сохранить ее в zip-файле, сделанном через adm-zip
, поскольку для этого требуется либо файл, буфер или строка.Хранение SQLite в базе данных памяти с ADM-ZIP (Node.js)
Мой вопрос в том, поддерживает ли модуль 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');
package.json
{
"private": true,
"dependencies": {
"sqlite3": "3.0.2",
"adm-zip": "0.4.4"
}
}
https://gist.github.com/neogeek/70c80c7ddaf998bee4bd
Большой upvote здесь. Это было действительно полезно. – Lolums