Javascript 使用Node.js读取SQLite数据库

Javascript 使用Node.js读取SQLite数据库,javascript,node.js,sqlite,ecmascript-6,node-sqlite3,Javascript,Node.js,Sqlite,Ecmascript 6,Node Sqlite3,有了这个SQLite数据库,我正试图从中读取数据。所以,从表1中,我想阅读前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

有了这个SQLite数据库,我正试图从中读取数据。所以,从表1中,我想阅读前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_在同一文件夹中

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

/home/rares/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/rares/Documents/Projects/OCSapp/app.js:6:31
    at replacement (/home/rares/Documents/Projects/OCSapp/node_modules/sqlite3/lib/trace.js:25:27)
    at Statement.errBack (/home/rares/Documents/Projects/OCSapp/node_modules/sqlite3/lib/sqlite3.js:14:21)

为什么会发生这种情况?

尝试这样连接到db

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\u READONLY:以只读方式打开数据库

sqlite3.OPEN\u READWRITE:打开数据库进行读写

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

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

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.');
});

尝试像这样连接到db

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\u READONLY:以只读方式打开数据库

sqlite3.OPEN\u READWRITE:打开数据库进行读写

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

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

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.');
});

为什么要使用数据库。序列化?我不知道,这是我第一次在Node中使用SQLite,这就是我在教程中发现的。我应该用不同的方法吗?正如我在文档中看到的那样。each方法使用指定的参数执行SQL查询,并为结果集中的每一行调用回调。。获取所有行或特定行要做什么?没关系,所有行都可以。我看了这篇教程,就这样做了,我刚刚试着打印出你们得到的数据,为什么要使用db呢。序列化?我不知道,这是我第一次在Node中使用SQLite,这就是我在教程中发现的。我应该用不同的方法吗?正如我在文档中看到的那样。each方法使用指定的参数执行SQL查询,并为结果集中的每一行调用回调。。获取所有行或特定行要做什么?没关系,所有行都可以。我看了这个教程,就这样做了。我刚刚试着打印出你们得到的数据。