Tag: sqlite3

SQLITE TABLE创build错误

我正在学习一个示例来学习node.js / sqlite3,如下所示: https : //github.com/mapbox/node-sqlite3/blob/master/examples/simple-chaining.js 在这个例子中,表只有列,我想扩展它,所以表有三列 – 用户名,密码和login计数。 所以我改变了原来的代码,在这里: function createTable() { console.log("createTable lorem"); db.run("CREATE TABLE IF NOT EXISTS lorem (info TEXT)", insertRows); } 对此: function createTable() { console.log("createTable lorem"); db.run("CREATE TABLE IF NOT EXISTS lorem (info TEXT, name TEXT)", insertRows); } 但是当试图用值填充时,我得到一个错误: ~:dev$ node chaining.js createDb chain createTable lorem insertRows Ipsum i events.js:72 […]

Node.js和sqlite3 npm模块:分别获取数据库#中的所有行

我使用node.js版本0.10.24和名为sqlite3版本2.1.19的npm模块。 我使用terminal窗口在OS X 10.9.1盒子上testing我的脚本。 以下脚本: var sqlite3 = require('sqlite3').verbose() var async = require('async') var myList = [] var db = new sqlite3.Database('./test0.db') async.series([ // Create a table and populate it function (callback) { db.run("CREATE TABLE lorem (listnumb bigint, info TEXT)", function (err) { if (err) return callback(err) console.log('Table created. ') callback() }); }, function (callback) […]

如何在sqlite3中使用sequelize做基于“date”列的查询?

我正在使用sqlite3的Sequelize,但无法查询基于“date”types的数据列。 这是我的模型定义: var sensorData = sequelize.define('Data', { time: Sequelize.DATE, value: Sequelize.FLOAT, type: Sequelize.STRING, source: Sequelize.STRING }, { timestamps : false }); 现在我想在这个函数中用'time'比给定的时间得到所有的logging: function selectData(start_date, num_of_records, callback) { sensorData.findAll({ limit: num_of_records, where: [time, '???'], <====== How to specify the condition here? order: 'time'}).success(callback); } 我无法在Sequelize的网站上find关于基于“date”types的查询语句的任何内容。 任何想法?

Nodejs node-sqlite3运行callback不起作用

我正在尝试使用nodejs和node-sqlite3包在sqlite数据库中删除一行。 当我运行删除命令,并手动检查条目,我可以看到查询成功删除该行,但我似乎无法编写确认这一点的代码。 这是查询 db.run("DELETE FROM Table1 WHERE id=? AND username=?", [id, user], function(error) { console.log(error); }); 无论是错误还是正确的input,它都会向控制台输出null 。 如果给出了正确的细节,则删除它并打印出null,如果给出了错误的id和用户,它仍然打印出null。 任何想法可能是错的? 谢谢

sqlite-nodejs3:当sqlite触发器被触发时,如何通知nodejs?

这是我需要的: Nodejs在sqlite数据库中创build一个触发器(使用node-sqlite3模块) 触发器被触发。 Nodejs进程得到通知。 这是我所憧憬的: 创build触发器时是否可以提供jscallback? 如果没有,我可以听nodejs中的事件吗? 如果没有,我可以在sqlite中使用RAISE()并在nodejs中捕获它吗? 还有什么其他的可能性? 也许有sqlite写入套接字? 任何聪明人都可以把我推向正确的方向?

node.js找不到模块sqlite – 错误的版本?

在全新安装节点的情况下,安装一个站点不会发生错误,但运行server.js将失败: 错误:找不到模块'C:\ xxx \ node_modules \ sqlite3 \ lib \ binding \ node-v14-win32-x64 \ node_sqlite3.node' 看在该文件夹的父,我看到它有一个子文件夹节点-v11-win32-x64 那么我需要从节点单独更新我的sqlite吗? PS – package.json中sqlite的条目是:“sqlite3”:“^ 3.0.2”,

`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-sqlite3中使用Gyp中的共享库

我是Gyp的新手。 而不是编译我的依赖,我想使用共享库,特别是已经在我的机器上的libsqlite3.so。 主要binding.gyp目前看起来像 { 'targets': [ { 'target_name': 'node_sqlite3', 'sources': [ 'src/database.cc', 'src/node_sqlite3.cc', 'src/statement.cc' ], 'dependencies': [ 'deps/sqlite3/binding.gyp:sqlite3' ] } ] } 我如何改变这个,以便使用共享的sqlite3库? deps文件夹中的binding.gyp有一个如下所示的部分。 我不认为我需要gyp为我做任何编译的sqlite3,所以切换types为shared_library可能不是正确的答案。 'targets': [ { 'target_name': 'sqlite3', 'type': 'static_library', 'include_dirs': [ '.' ], 'direct_dependent_settings': { 'include_dirs': [ '.' ], 'defines': [ 'SQLITE_THREADSAFE=1', 'SQLITE_ENABLE_FTS3', 'SQLITE_ENABLE_RTREE' ], }, 'defines': [ '_REENTRANT=1', 'SQLITE_THREADSAFE=1', 'SQLITE_ENABLE_FTS3', 'SQLITE_ENABLE_RTREE' […]

使用stream时,knex.js上的内存问题

我想用knex.js将整个sqlite3数据库表导出为CSV。 由于表可以达到300000行,我使用stream没有内存问题。 但是,如果我看我的应用程序的内存使用高达800MB或我有一个“内存不足”的错误。 我怎样才能处理sqlite3数据库上的knex.js的大型查询结果? 下面的代码示例: knex.select().from(table).stream(function (stream) { var stringifier = stringify(opts); var fileStream = fs.createWriteStream(file); var i = 0; stringifier.on('readable', function() { var row; while (row = stringifier.read()) { fileStream.write(row); console.log("row " + i++); //debug } }); fileStream.once('open', function(fd) { stream.pipe(stringifier); }); }); 编辑 似乎sqlite3数据库的knex.jsstream是“假”stream。 下面是knex中sqlite3的stream函数的源代码: Runner_SQLite3.prototype._stream = Promise.method(function(sql, stream, options) { /*jshint unused: […]

如何读取sqlite3数据库,使用节点js,同步?

exports.allProbes = function() { var rows = db.all("SELECT * FROM probes;"); return rows; }; main: var json_values = allProbes(); 有没有可能做这样的事情? 我的意思是,不使用callback函数:只是,从数据库读取数据(同步模式)。 并返回一个JSON格式的输出? 谢谢。