Tag: sqlite3

使用Node Webkit,Sequelize和SQLite3,保存()和get()失败

我不完全确定我的问题是什么,但标题是我最好的猜测。 包括我的错误日志和思考过程。 我希望有人能帮帮忙。 /Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/captured_trace.js:478 Unhandled rejection Error: TypeError: Illegal invocation at Object.ensureErrorObject (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/util.js:228:20) at Promise._rejectCallback (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:416:22) at Promise._settlePromiseFromHandler (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:460:17) at Promise._settlePromiseAt (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:530:18) at Promise._settlePromises (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:646:14) at Async._drainQueue (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/async.js:177:16) at Async._drainQueues (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/async.js:187:10) at Immediate.Async.drainQueues [as _onImmediate] (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/async.js:15:14) at processImmediate [as _immediateCallback] (timers.js:321:17) 我开始使用SQLite作为单个应用程序数据存储。 我selectSequelize作为ORM,因为它非常简单。 在web上下文中,这意味着通过Node.js运行应用程序一切正常。 当我尝试在NW.js上下文中运行相同的应用程序时,问题就开始了。 首先,SQLite3应该以特定的方式进行编译。 我做到了,一切顺利。 我定义了Sequelize模型,并且在执行sync()时,如果不存在,则创build所有表,并且架构是指定的。 这意味着,在某些时候SQLite3和Sequelize连接良好,一切都如预期的那样。 当我尝试使用save()或get()方法时,奇怪的问题就开始了,因为带Promise的东西失败了。 我想这可能是由于支持NW编译的SQLite模块。 我不知道这是库故障,还是一些缺失的标志,或者NW上下文在Sequelize和SQLite通信之间打破了什么。 既然这只发生在一个NW的背景下,我select在这里问,所以我可以知道我做错了什么,或者我怎么能debugging这个东西。 任何起点都将被赞赏,无论是解决scheme,还是解释如何在Node Webkit中进行debugging。

NodeJS sqlite3并发访问

基本上我有一个数据库没有多less出现,但可悲的是两个分组。 首先,对数据库有一个写访问权限。其次,有一个读访问权限。 读访问失败,并显示数据库被locking的消息( { [Error: SQLITE_BUSY: database is locked] errno: 5, code: 'SQLITE_BUSY' } ),这是完全正常的。 但是,我怎样才能让我的读取访问等待数据库closures? 我目前的代码: var sql = "INSERT INTO chickenmilk (userID,channelID,message) VALUES (?,?,?)" db.run(sql, userID, channelID, bot.fixMessage(message), function(err) { console.log(err); db.close(); }); 并发: var sql = "SELECT userID, COUNT(message) as count FROM chickenmilk WHERE channelID LIKE ? GROUP BY userID"; db.all(sql, data, […]

如何禁用node-sqlite3中的堆栈跟踪?

我已经从npm安装了sqlite3,使用这个包的时候我看到了这个堆栈跟踪(但是更长)。 如何禁用它? 节点版本是6.0。 ==== JS堆栈跟踪========================================= 安全上下文:0x1e993ebc9fa9#0# 1:.node [module.js:568] [pc = 0x1e3962aa3c84](this = 0x14ceca9bad31#1#,module = 0x2f85be11f541#2#,filename = 0x2f85be11f509) 2:load [module.js:456] [pc = 0x1e3962a38e72](this = 0x2f85be11f541#2#,filename = 0x2f85be11f509) 3:tryModuleLoad(aka tryModuleLoad)[module.js:415] [pc = 0x1e3962a3899d](this = 0x1e993eb04189,module = 0x2f85be11f541#2#,filename = 0x2f85be11f509) 4:_load [module.js:407] [pc = 0x1e3962a345e2](this = 0x14ceca9badb1#3#,request = 0x2f85be1186c1,parent = 0x14ceca9bd321#4#,isMain = 0x1e993eb04299) 5:require [module.js:466] [pc = 0x1e3962a42573](this […]

节点vs PHP SQLite性能(270ms vs 70ms) – 我做错了什么?

更新:我回到原来的问题。 最后见附录 我试图testing节点sqlite3读取性能与PHP,看看是否移动一些代码到节点是一个可行的select。 这是我有: SQLite 3.8.7 installed on system Node 0.10.29 with sqlite3 module (npm install sqlite3) PHP 5.6.7 with PDO Running on Debian 8.1 testing数据库 BEGIN TRANSACTION; CREATE TABLE people( id integer primary key, name text, surname text ); INSERT INTO "people" VALUES(1,'Elon','Musk'); INSERT INTO "people" VALUES(2,'Bill','Gates'); INSERT INTO "people" VALUES(3,'Steve','Jobs'); COMMIT; 节点代码: var […]

如何让SQLite与Angular 4+,Electron和NodeJS一起工作

我试图build立一个小桌面应用程序使用: angular4+ 的NodeJS 电子 sqlite3的 NodeJS将用于扫描本地用户hdd并将特定文件插入到SQLite3数据库中。 我查了几十个文档和build议。 他们大多build议使用NodeJS express框架,并在Angular 4+ – > Express – > SQLite3之间build立一个层。 我想避免使用快速框架,因为它将是桌面应用程序,根本不需要。 我尝试了什么,我做了什么: 我安装了: "sqlite3": "^3.1.9", "node-pre-gyp": "^0.6.36", 作为我的项目中的依赖项。 比我读过,如果你想使用本地nodejs库你应该运行电子重build。 所以我也安装了电子重build: "electron-rebuild": "^1.6.0" 作为devDependencies并使用以下命令运行它: ./node_modules/.bin/electron-rebuild 重buildsqlite3成功完成。 比我运行电子应用程序,我得到以下错误: /~/node-pre-gyp/lib/node-pre-gyp.js Module build failed: Error: ENOENT: no such file or directory, open '/home/haris/development/walter/angular-electron-starter/node_modules/node-pre-gyp/lib/node-pre-gyp.js' at Error (native) @ ./~/sqlite3/lib/sqlite3.js 1:13-36 @ ./src/app/home/home.component.ts @ ./src/app/home/index.ts […]

从sqllite3获取BIGINT值

我使用这个模块https://www.npmjs.org/package/sqlite3与sqlite3工作。 我需要从数据库保存/加载大整数,但我不能,因为数量保存结果不同。 我的代码: var sql = require('sqlite3'); var db = new sql.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info BIGINT)"); var stmt = db.prepare("INSERT INTO lorem VALUES ($value)"); stmt.bind({ $value : "1000000000012312312" }); stmt.run(function (err) { if (err) { console.log(err); } else { db.all("SELECT info FROM lorem", function (err, r) { if (err) { console.log(err); } […]

sqlite3callback(node.js)

我试图将我网站上input的电子邮件与数据库中的电子邮件进行比较,看看它是否已经存在。 如果是,则该函数返回false,并显示一个错误。 var db = new sqlite3.Database('users_db.db'); db.get( "SELECT * FROM users WHERE useremail = ?", [email], function (err, rows) { if (rows == undefined ){ global.returnvalue2 = false; } } ); 我想要的是在select后立即运行该函数,以便返回值为false,并且不创build用户logging。 现在我意识到这个callback在所有事情之后都会被调用,所以它只是在整个程序的其余部分进行select和继续,直到结束。 我怎样才能检查是否有任何相同的电子邮件logging?

在NodeJS中访问SQLite3数据库

我正在NodeJS中使用SQLite3创build一个数据库。 我已经成功地使用表格创build数据库并插入数据。 如果我在同一个文件中,我做了一个select从我的表中logging数据,它的工作原理。 我的问题是我怎样才能从另一个js文件的数据库上运行一个查询? 我试过使用模块的方式,但没有运气。 比方说,创build数据库的m文件被调用 db.js var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database('./database.db'); db.serialize(function() { db.run("CREATE TABLE if not exists parameters (path TEXT)"); var stmt = db.prepare("INSERT INTO parameters VALUES (?)"); stmt.run("test paramter"); stmt.finalize(); db.each("SELECT path FROM parameters", function(err, row) { console.log(row.path); }); }); db.close(); 然后我有一个文件叫 update.js 我怎么能运行一个查询 db.each("SELECT path FROM parameters", […]

电子重build构buildnode-sqlite3的错误版本

我正在尝试在Windows 10开发机器上启动并运行Electron应用程序。 我运行npm install ,它会安装所有的依赖包括sqlite3 , electron-prebuilt和electron-rebuild 。 然后运行electron-rebuild -w sqlite3 -p创buildnode-sqlite3绑定,并成功创buildelectron-v1.4-win32-x64绑定。 然而,当我运行电子应用程序,它会抛出一个错误,因为它是期待electron-v1.2-win32-x64 。 我如何强制1.2的版本,而不是1.4的绑定? 另外,如何让我的电子应用程序使用v1.4?

在Node / Express中重新加载 – “没有这样的表:main.User”错误

我试图用Sequelize构build一个简单的Node / Express应用程序,但是当我尝试在关系数据库中创build新logging时,出现错误Unhandled rejection SequelizeDatabaseError: SQLITE_ERROR: no such table: main.User 。 基本上,我在Users表中创build一个用户,然后尝试在Addresses表中创build一个相关的Addresses – 用户成功创build,但它创build地址时出现此错误…在哪里得到main前缀从表名? (完整的错误读数在下面)… 首先,这里是我的节目的简介… 我的Sequelize版本是Sequelize [Node: 6.8.1, CLI: 2.4.0, ORM: 3.29.0] ,我使用Sequelize CLI命令sequelize init来设置我的项目的这一部分。 我正在使用SQLite3进行本地开发,并在config/config.json我有开发数据库定义为 "development": { "storage": "dev.sqlite", "dialect": "sqlite" } 我的用户迁移: 'use strict'; module.exports = { up: function(queryInterface, Sequelize) { return queryInterface.createTable('Users', { id: { allowNull: false, autoIncrement: true, primaryKey: true, […]