exports.allProbes = function() {
var rows = db.all("SELECT * FROM probes;");
return rows;
};
main:
var json_values = allProbes();
有可能做那样的事吗? 我的意思是,不使用回调函数:只是,从数据库中读取数据(同步模式)。并返回一个json格式的输出?
感谢。
答案 0 :(得分:12)
有一些npm包,例如better-sqlite3和sqlite-sync,允许同步SQLite查询。这是一个例子:
var sqlite = require("better-sqlite3");
var db = new sqlite("example.db");
var rows = db.prepare("SELECT * FROM probes").all();
console.log(rows);
答案 1 :(得分:10)
使用sqlite3无法做到这一点。使用sqlite3模块,唯一可用的操作模式是异步执行,您将不得不使用回调。例如
exports.allProbes = function(callback) {
db.all("SELECT * FROM probes;", function(err, all) {
callback(err, all);
});
};
然后在你的代码中:
var json_values;
allProbes(function(err, all) {
json_values = all;
});
答案 2 :(得分:0)
您必须使用npm install --save sql.js
安装sql.js.请按照以下步骤进行休息:
var fs = require('fs');
var sql = require('sql.js');
var bfr = fs.readFileSync('/tmp/db.sqlite');
var db = new sql.Database(bfr);
db.each('SELECT * FROM test', function (row) {
console.log(row);
});
您可以通过以下链接获取更多详细信息:https://discuss.atom.io/t/how-to-access-a-local-db-on-windows-through-electron/22400/13