在NodeJS中访问SQLite3数据库

时间:2015-09-14 14:32:10

标签: node.js sqlite

我在NodeJS中使用SQLite3创建数据库。我已经成功地用表创建数据库并插入数据。如果我在同一个文件中并且我选择从我的表中记录数据它可以正常工作。我的问题是如何从另一个js文件对数据库运行查询?我尝试过使用模块方式,但没有运气。让我们说创建数据库的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", function(err, row) {
        console.log(row.path);
    });

在这个js文件中呢?

2 个答案:

答案 0 :(得分:2)

Once "database.db" has been saved, it should work if you re-instanciate the database connector

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./database.db');
db.each("SELECT path FROM parameters", function(err, row) {
    console.log(row.path);
});

答案 1 :(得分:1)

我通过添加__dirname

解决了该问题
    const sqlite3 = require('sqlite3').verbose();                                                                                                                                           
const db = new sqlite3.Database(__dirname+'/database.sqlite');                                                                                                                          
db.each("SELECT id FROM loan;", function(err, row) {                                                                                                                                    
      console.log(row);                                                                                                                                                                 
});