我正在尝试实现一个REST环境,在这个环境中,客户端的客户端数据存储在SQLite数据库中。
我以前在Cordova上用科多瓦-平方米-储藏室完成了这个任务,但是我不能用它的香草-JS对应的sql.js来完成同样的任务。
我遇到的问题是,Database()函数没有返回任何内容,所以我无法执行任何类型的查询。
这是我的测试文件(test.html):
<html>
<head>
<script src="https://rawgit.com/kripken/sql.js/master/js/sql.js"></script>
</head>
<body>
<script>
var sql = window.SQL;
var db = sql.Database(); // Is returning undefined ?
sqlstr = "CREATE TABLE hello (a int, b char);";
sqlstr += "INSERT INTO hello VALUES (0, 'hello');"
sqlstr += "INSERT INTO hello VALUES (1, 'world');"
db.run(sqlstr); // Run the query without returning anything
var res = db.exec("SELECT * FROM hello");
console.log(res);
</script>
</body>
</html>
这将返回以下错误:
TypeError: this.handleError不是一个函数 sql.js 第466项
如果我自己创建this.handleError(),错误将更改为:
TypeError: db未定义 test.html 第13行
对于如何解决这个问题,有什么想法吗?我已经到处找过了,但是文件似乎很少。
发布于 2015-12-08 14:54:49
需要调用sql.Database()作为构造函数(例如,db = new sql.Database();)。注意new,就像在使用实例中一样。
var sql = window.SQL;
var db = new sql.Database();
sqlstr = "CREATE TABLE hello (a int, b char);";
sqlstr += "INSERT INTO hello VALUES (0, 'hello');"
sqlstr += "INSERT INTO hello VALUES (1, 'world');"
db.run(sqlstr);
var res = db.exec("SELECT * FROM hello");
console.log(res);<script src="https://rawgit.com/kripken/sql.js/master/js/sql.js" type="text/javascript"></script>
https://stackoverflow.com/questions/34158828
复制相似问题