插入JS的sqlite3 DB中,未在表中添加任何内容

时间:2019-03-27 20:58:23

标签: javascript node.js sqlite

我的表结构:

sqlite3 <<< '.dump' bdd.sqlite
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE stats (epoch INTEGER PRIMARY KEY, scenario TEXT, image_path TEXT, exec_time INTEGER, result TEXT, passed TEXT);
COMMIT;

我的JavaScript代码:

const sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./bdd.sqlite');
db.run(`INSERT INTO stats VALUES(?,?,?,?,?,?)`, [ Date.now(), 'foobar', 'none', 'OK', '', 'passed OK' ], function(err) {
  if (err) {
    return console.log(err.message);
  }
  // get the last insert id
  console.log(`A row has been inserted with rowid ${this.lastID}`);
});
db.close();

我做错了什么?

当我运行nodejs脚本时,什么也没添加也没有错误

1 个答案:

答案 0 :(得分:0)

解决方案,请不要使用此#*!%npm-sqlite3模块,而应使用npm-better-sqlite3

npm上的某些模块确实很糟糕。

所以我写的用来做事的东西与better-sqlite3一起工作:

const db = require('better-sqlite3')('bdd.sqlite');

const stmt = db.prepare('INSERT INTO stats VALUES (?, ?, ?, ?, ?, ?)');
const info = stmt.run(Date.now(), 'relais', 'none', 'OK', '', 'passed OK');

console.log(info.changes); // => 1