我正在使用Nwjs创建桌面应用程序。到目前为止,一切都像魅力,我真的很喜欢这整个概念。
但我需要数据库功能,在Nwjs文档中,WebSql是建议列表中的第一个数据库。我已经设法编写我的方法来创建,插入等,但我找不到删除我意外创建的数据库的方法。
这让我想知道WebSql是否适合创建生产桌面应用程序。或者我应该切换到另一个数据库模块吗?
示例代码:
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
if(!db){
alert('no table!');
}
console.log(db);
/**** DATABASE FUNCTIONS ****/
// Create table if not exists
db.transaction(function (tx) {
tx.executeSql( 'CREATE TABLE IF NOT EXISTS companies (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255), street VARCHAR(128), nr VARCHAR(12), city VARCHAR(128))' );
});
function insertCompanyInDB(name, street, nr, city) {
db.transaction(function (tx) {
tx.executeSql('INSERT INTO companies (name, street, nr, city) VALUES (?, ?, ?, ?)', [name, street, nr, city]);
});
}
答案 0 :(得分:0)
,如https://www.w3.org/TR/webdatabase/#databases
中所述无法枚举或删除此API中可用于源的数据库。
但由于nwjs应用程序作为chrome扩展程序,因此您可以删除所有webSql数据库(清除websql存储),如下所示:
1 - 在您的 package.json 中添加:
"name": "myapp",
"permissions": [
"browsingData"
]
2-从javascript调用此命令
chrome.browsingData.removeWebSQL({since:0, originTypes:{extension:true}});
注意经过大量测试后我个人建议使用LocalStorage和JSON.stringify复杂对象或SQlite用于关系数据结构