在Node.js中从SQLite获取表的列表
下面的代码只返回第一个表的名字,如何获得现有sqlite中所有可用表名的列表?
const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('path/to/mydb.sqlite'); db.serialize(function () { db.get("select name from sqlite_master where type='table'", function (err, table) { console.log(table); }); });
产量
{name: "meta"}
在sqlite3命令行中打开时
sqlite> .tables downloads meta urls downloads_url_chains segment_usage visit_source keyword_search_terms segments visits
从get()的文档 :
使用指定的参数运行SQL查询,然后用第一个结果行调用callback。
你必须使用db.all() :
db.serialize(function () { db.all("select name from sqlite_master where type='table'", function (err, tables) { console.log(tables); }); });
或db.each()如果你想调用每一行的callback:
db.serialize(function () { db.each("select name from sqlite_master where type='table'", function (err, table) { console.log(table); }); });