Tag: sqlite3

Node.js脚本中使用SQLite3包错误的查询顺序

我正在玩node-sqlite3软件包 ,遇到了一个奇怪的情况。 这个简单的脚本有一个简单的逻辑:查找一个表是否存在,是否清空它,如果没有 – 创build它。 var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database('guy.sqlite'); //':memory:' var tableExists = false; db.serialize(function() { db.get("SELECT name FROM sqlite_master WHERE type='table' AND name='lorem'", function(error, row) { tableExists = (row != undefined); console.log("xxxxx " +tableExists); }); console.log("yyyyy " +tableExists); if (tableExists) { console.log("table exists. cleaning existing records"); db.run("DELETE FROM lorem", […]

如何检查更新是否成功在node.js和sqlite3?

任何人都可以给我任何build议,如何检查更新语句是否成功使用node.js和从npm安装sqlite3安装sqlite3包(https://github.com/developmentseed/node-sqlite3/wiki/API) 要执行更新,我正在执行以下操作: var id = req.params.id; var thing = req.body; stmt = db.prepare("UPDATE FOO set name=?, year=? where id=?"); stmt.bind(thing.name, thing.year, id); stmt.run(function(err, result) { if (err) { res.send(JSON.stringify(err)); res.send({'error':'An error has occurred'}); } else { if (result) { console.log('Success: ' + JSON.stringify(result)); } res.send(JSON.stringify(wine)); } }); 但是,结果从来没有定义。 如果我将stmt.run()更改为stmt.all(),我得到一个结果,但它似乎是空的 – 将它打印到控制台上什么也不显示。

如何格式化node.js sqlite3logging集作为logging数组的JSON对象

我想将我的查询结果格式化为包含每个logging的数组对象的单个JSON对象。 需要编写脚本的帮助 – JSON.stringify函数正在构build一个对象数组(我的JSON从里到外!)。 我总是可以编写一个函数来手动构buildJSON,但我有一种感觉,已经有一个函数来做我正在寻找的东西。 我无法find它。 我想要得到的JSONstring: {["id":1,"info":"Ipsum 0"], ["id":2,"info":"Ipsum 1"], ["id":3,"info":"Ipsum 2"], ["id":4,"info":"Ipsum 3"] (and so on) } 实际结果 [{"id":1,"info":"Ipsum 0"},{"id":2,"info":"Ipsum 1"}, {"id":3,"info":"Ipsum 2"},{"id":4,"info":"Ipsum 3"}, {"id":5,"info":"Ipsum 4"},{"id":6,"info":"Ipsum 5"}, {"id":7,"info":"Ipsum 6"},{"id":8,"info":"Ipsum 7"}, {"id":9,"info":"Ipsum 8"},{"id":10,"info":"Ipsum 9"}] 我的代码到目前为止(基于这个例子 ) var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt […]

有事务的Nodejsasynchronous模块

我想在我的nodejs项目中使用sqlite数据库。 我正在寻找一个模块为sqlite,这将是操作支持交易和asynchronous

JavaScript – 编译错误的序列

我想检查,如果用户已经在我的数据库(sqlite3)。 如果用户存在:return 500(ERROR !!) 如果用户不存在:return 200(ok) 那是我的脚本:node.js +表示在服务器端。 app.post('/adduser', function(req,res){ db.serialize(function(){ var user = req.body.user; var password = req.body.password; var err = false; db.each("SELECT name FROM users", function(err, row) { if (user == row.name) { console.log(row.name); err = true; console.log("a: " +err); res.send(500); return false; } }); if (err==false) { console.log("b: " +err); res.send(200); } […]

我如何解决在NodeJS和sqlite-3中深度嵌套的callback?

我一直在掌握节点和node-sqlite3,需要根据多个查询构build一个报告: var db = require('./db'); module.exports = { getActivity : function (user_id, done) { var report = {}; db.get('SELECT * FROM warehouse WHERE user_id = ?', user_id, function (err, warehouse) { report.warehouse = warehouse; db.all('SELECT * FROM shops WHERE warehouse_id = ?', report.warehouse.id, function (err, shops) { report.shops = shops; return done(report); }); }); } […]

同步sqlite事务节点

我用npm安装了sqlite3 npm install sqlite3 –save 我写了一些基本的function,我想同步执行,而不是asynchronous。 例如我想在一个函数中获取列名,在另一个函数中获得行数。 我想简单地返回这些值。 目前我正在使用像这样的callback d.cinfo = function(table, callback){ var o = {}; db.each("PRAGMA table_info(" + table + ")", function(err, col){ o[col.name] = col.type; }, function(){ if(typeof callback == 'function') callback(o); }); } d是后来暴露的对象,但是Id喜欢返回值 d.cinfo = function(table, callback){ var o = {}; db.each("PRAGMA table_info(" + table + ")", function(err, col){ o[col.name] […]

NodeJS sqlite3得到错误信息

如何从“err”variables中获取错误信息? 当我转储它包含的variables { [Error: SQLITE_CONSTRAINT: UNIQUE constraint failed: _test.Id] errno: 19, code: 'SQLITE_CONSTRAINT' } 我需要从“err”variables中获取“Error:SQLITE_CONSTRAINT:UNIQUE约束失败:_test.Id”。 我正在执行这个查询。 db.run("INSERT INTO _test (Var1) VALUES (?)", '1', function (err) { if (err) { console.log(err); return; } }); Alredy尝试了err [0],用“for”打印出所有的属性,但是它只返回“errorno”和“code”属性。

nodejs中的variablessqlite3查询

我使用node.js构build了一个简单的表单,要求提供您期望的内容: – 名字 – 姓氏 – 地址 并使用名为firstName,lastName,address的字段对sqlite3数据库进行查询。 我想混合和匹配查询,虽然 – 你可以search只是姓氏或名字与姓氏或姓氏与部分街道地址等 为每个案件写单独的查询将是烦人的,但我不知道该怎么办。 在代码中,如果我input名字或姓氏,以下工作: db.serialize(function() { db.each("SELECT rowid AS id, lastName, firstName FROM county WHERE firstName = ? OR lastName = ?", firstName, lastName, function(err, row) { console.log(row.id + ": " + row.firstName + ' ' + row.lastName); } } 但是,如果我input名字和姓氏,我希望这是AND,而不是只返回两个匹配的行。 如果我在该子句中执行“与”,那么如果我将其中一个字段留空,它将不会返回任何内容。 我只是缺less构build我的查询技巧? 谢谢!

如何与node.js一起使用sqlite3 – 什么是smt?

我想能够使用sqlite 3与node.js 我正在使用这里的代码,它完美的工作,但我真的不明白的代码。 例如: var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); for (var i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); db.each("SELECT rowid AS id, info FROM lorem", function(err, row) { console.log(row.id […]