我正在尝试使用
我的问题是:是否
下面是我用于测试的代码和可克隆的gist。 main.js
sqlite3
模块创建内存SQLite数据库,并使用adm-zip
模块将其保存到zip文件中。到目前为止,我已经能够创建内存数据库并向其中添加数据,但我没有找到一种方法可以将其存储在通过adm-zip
创建的zip文件中,因为该模块要求使用文件、缓冲区或字符串。我的问题是:是否
sqlite3
模块支持存储或保存为缓冲区?如果不支持,那么当脚本既用作可require的模块又用作命令行脚本时,在Node.js中存储临时文件的建议解决方案是什么?下面是我用于测试的代码和可克隆的gist。 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"
}
}