【发布时间】: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