Nwjs 和 WebSql - 无法删除现有数据库?
Nwjs and WebSql - can't delete existing databases?
我正在使用 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]);
});
}
如 https://www.w3.org/TR/webdatabase/#databases
中所述,供未来用户使用
There is no way to enumerate or delete the databases available for an origin from this 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 用于关系数据结构
我正在使用 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]);
});
}
如 https://www.w3.org/TR/webdatabase/#databases
中所述,供未来用户使用There is no way to enumerate or delete the databases available for an origin from this 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 用于关系数据结构