【问题标题】:Read SQLite database with Node.js使用 Node.js 读取 SQLite 数据库
【发布时间】:2022-02-09 23:46:47
【问题描述】:

拥有这个 SQLite 数据库,我正在尝试从中读取数据。所以,我想从表 Athlete 中读取前 3 列。

这是代码(app.js):

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('ocs_athletes');

db.serialize(function () {
  db.each('SELECT athlete_id, name, surname FROM Athlete', function (err, row) {
    console.log('User: ', row.athlete_id, row.name, row.surname);
  });
});

db.close();

文件 app.js 与 db 文件 - ocs_athletes 位于同一文件夹中。

在 cmd node app.js 中运行返回此错误消息:

/home/dd/Documents/Projects/OCSapp/app.js:6
    console.log('User: ', row.athlete_id, row.name, row.surname);
                              ^

TypeError: Cannot read property 'athlete_id' of undefined
    at /home/dd/Documents/Projects/OCSapp/app.js:6:31
    at replacement (/home/dd/Documents/Projects/OCSapp/node_modules/sqlite3/lib/trace.js:25:27)
    at Statement.errBack (/home/dd/Documents/Projects/OCSapp/node_modules/sqlite3/lib/sqlite3.js:14:21)

为什么会这样?

【问题讨论】:

  • 为什么要使用db. serialize
  • 我不知道,这是我第一次将 SQLite 与 Node 一起使用,这就是我在教程中找到的方法。我应该采取不同的做法吗?
  • 正如我在文档中看到的那样。 each() 方法执行带有指定参数的 SQL 查询,并为结果集中的每一行调用回调。.. 你想做什么来获取所有行或特定行?
  • 没关系,都很好。我正在看这个教程,并这样做了youtube.com/watch?v=GCuJi2kzaqI
  • 刚刚尝试仅打印row 您将获得哪些数据作为回报。

标签: javascript node.js sqlite ecmascript-6 node-sqlite3


【解决方案1】:

尝试像这样连接到数据库。

let db = new sqlite3.Database('./ocs_athlete.db', (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the my database.');
});

给出.db 文件的路径。这会起作用。

共有三种开启方式:

sqlite3.OPEN_READONLY:以只读方式打开数据库。

sqlite3.OPEN_READWRITE:打开数据库进行读写。

sqlite3.OPEN_CREATE:打开数据库,如果数据库不存在,则新建一个数据库。

要打开 chinook 示例数据库进行读写,可以如下操作:

let db = new sqlite3.Database('./ocs_athlete.db', sqlite3.OPEN_READWRITE, (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the ocs_athlete database.');
});

【讨论】:

    猜你喜欢
    • 2010-11-04
    • 1970-01-01
    • 2012-07-13
    • 2015-03-19
    • 2015-06-04
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多