Tag: sqlite

JSON.stringify(数组)用方括号包围

我试图得到一个数组的数据插入到sqlite数据库中的多个列,我已经得到它几乎与这个工作: function InsertData(dbData){ var valueArray = [], dataArray = []; var values = Object.keys(dbData); for(var key in values){ valueArray[valueArray.length] = values[key]; dataArray[dataArray.length] = dbData[values[key]]; } console.log("INSERT INTO "+dbData.table+" ("+valueArray+") VALUES ("+JSON.stringify(dataArray)+")"); dbData.database.serialize(function(){ dbData.database.run("INSERT INTO "+dbData.table+" ("+valueArray+") VALUES ("+JSON.stringify(dataArray)+")"); }); } 我的数据是这样构造的: //app.js function EventData(title, value, other){ this.title = title; this.value = value; this.other = other; […]

Node.js和sqlite,SQLITE_RANGE:绑定或列索引超出范围

看到我的答案下面的MWE! 我知道这听起来很愚蠢,答案可能是在我面前,但我不明白为什么我得到这个SQLITE_RANGE错误,因为我的对象看起来像它有每个属性需要。 console.log "values " , values # Recording in db console.assert values.login? console.assert values.password_sha? console.assert values.email? console.assert values.token? values.password = null @db.run "INSERT INTO user VALUES (NULL, $login, $password_sha, $email, $token)", values, (err) -> console.error err if err? 这是我的服务器的输出 values { login: 'ostream', email: 'ijw', password: 'justine', token: 'acppn99ngiafw29', password_sha: 'b1820c2ec34175954bdaa42038b48886b4c83f8d53f88b5315c415898855e4f8' } { [Error: […]

如何处理先调用sequelize.sync()?

我在nodejs中开发有点新,所以这可能是一个简单的问题。 我正在build立一个典型的Web应用程序基于快递+续订。 我在内存中使用sqlite,因为我现在只是原型。 我明白,如果我要使用持续的sqlite文件,这可能不是一个问题,但这不是我目前的目标。 考虑以下: var User = sequelize.define("User", { "username": DataTypes.STRING, // etc, etc, etc }); sequelize.sync(); User.build({ "username": "mykospark" }); 起初,我在User.build()方面得到了关于Users表不存在的错误。 我意识到sequelize.sync()被称为asynchronous,插入发生在表创build之前。 然后,我重新安排我的代码,以便User.build()调用是在sequelize.sync()。complete()修复问题,但我不知道如何将其应用到我的项目的其余部分。 我的项目在一堆不同的地方使用模型。 这是我的理解,我只是想在我的模型定义后调用sequelize.sync()一次,然后他们可以自由使用。 我可能会find一些方法来阻止整个nodejs应用程序,直到sequelize.sync()完成,但这似乎不是好的forms。 我想我可以将每一个模型操作包装到sequelize.sync()。complete()调用中,但是这看起来不正确。 那么人们通常如何处理呢?

`db.serialize`如何在`node-sqlite3`中工作

最近我正在学习使用节点和节点sqlite3来操纵sqlite3,这里是一个示例。 var sqlite3 = require('sqlite3'); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE test(info TEXT)"); db.run("INSERT INTO test (info) VALUES ('info1')"); }) db.close(); 该文件说, db.serialized是用来确保SQL行按顺序执行,但我很困惑,为什么不按顺序执行没有db.serialize ,毕竟他们将被从事件队列中拉出并执行订购? 它在这里如何工作? 如果只有一个sql被执行,是否安全地运行它没有db.serialize如下? var sqlite3 = require('sqlite3'); var db = new sqlite3.Database(':memory:'); db.run("CREATE TABLE test(info TEXT)"); db.close();

node.js – 确定每行asynchronous函数由于没有行而未被调用

我试图编写代码,如果SQLite查询不会返回结果将被执行。 但是,Node.js的asynchronous特性使得这很困难。 我不知道是否可以在callback函数中编写代码,因为当我testinginput时会导致空的结果,没有任何反应。 我正在做 db.each("SELECT pid, collection , photo FROM photos WHERE collection = '"+collection_id+"' AND pid = '"+photo_id+"' ", function(err, row) { console.log("PHOTO FOUND"); //code inside the callback function }); //code I want 具体来说,我想呈现一般的东西,万一用户请求不在分贝的东西,我该怎么办?

如何访问一个Sql litevariables从一个Js到Cordova中的另一个Js

您好我已经在我的项目中实现了一个SqlLite,我在Login.js中创build数据库,但我的问题是现在我需要更新另一个JS的列。 如何从另一个JS访问一个DBvariables。 代码A.js: function onDeviceReady() { window.db = window.openDatabase("SP_DB", "1.0", "SPDB", 200000); }; 现在我需要访问从另一个JS的window.db列添加或更新。 如何实现这一点 代码B.js:在这里,我需要访问该window.dbvariables,我不想再次创build数据库。 var saveimg = document.getElementById("saveimg"); saveimg.addEventListener('click', goInsert, false); function goInsert() { window.db.transaction(insertDB, errorCB, successCB); } function insertDB(tx) { tx.executeSql('INSERT INTO SP(FirstName,LastName,Address) VALUES ("' + document.getElementById("txtFirstName").value + '","' + document.getElementById("txtLastName").value + '","' + document.getElementById("txtAddress").value + '")'); } function errorCB(err) { alert("Error […]

meteor将不会启动 – 纤维/ futures.js抛出错误“错误:SQLITE_CORRUPT:数据库磁盘映像格式错误”

现在,在本地运行,OSX中Meteor CLI的每个动作都会引发这个exception: /Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/fibers /future.js:245 throw(ex); 错误:SQLITE_CORRUPT:数据库磁盘映像格式错误 我很难过 我看了一下这个fibre / future.js代码,但它远远超出了我。 我发现在catalog-remote.js使用了SQLite,那么有没有办法使用SQLite CLI工具来重置? 或者,我应该删除并重新安装SQlite3(如果是这样,如何)? 以下是我在terminal上使用Meteor命令时获得的完整日志: /Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:245 throw(ex); ^ Error: SQLITE_CORRUPT: database disk image is malformed at Object.Future.wait (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:395:18) at runOnce (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/catalog-remote.js:237:21) at [object Object]._.extend._serialize (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/catalog-remote.js:176:14) at [object Object]._.extend.runInTransaction (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/catalog-remote.js:242:21) at [object Object]._.extend._columnsQuery (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/catalog-remote.js:888:24) at [object Object]._.extend._contentQuery (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/catalog-remote.js:878:21) at [object Object]._.extend.getReleaseVersion (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/catalog-remote.js:663:23) at Object.release.load (/Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/release.js:233:41) at /Users/mallorym/.meteor/packages/meteor-tool/.1.1.3.1d614zp++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/tools/main.js:893:23 […]

SQLite与MySQL的Ghost博客?

我目前正在我的服务器上设置幽灵。 我将主办自己的博客,可能还有更多的朋友。 Ghost默认使用sqlite。 Sqlite适用于小型应用程序和开发环境。 如果鬼魂能干得好,我打算至less跑1-2年或者更长时间。 一个博客包含了很多图片和文字。 随着时间的推移,sqlite数据库会随着越来越多的图像等等而增长。 数年来为此目的使用sqlite可以吗? MySQL会更强大,但也更复杂的设置。 什么是Ghost博客的最佳select?

节点orm2:不调用orm.connectcallback

我想用sqlite来试用节点orm2 。 我尝试了示例代码,并将mysql更改为sqlite。 它看起来像这样: var orm = require("orm"); orm.connect('sqlite://D:/orm_test/database.db', function (err, db) { // … }); 我没有得到任何错误或警告。 只是没有发生。 callback没有被调用。 它不起作用,即使我以前创builddatabase.db

用sqlite的node.js护照autentification

它可能使用node.js + passport和sqlite数据库与会话? 所有的例子只有mongoDb。 我想在sqlite中收集所有的数据。