【发布时间】:2020-11-27 21:39:07
【问题描述】:
我在 Electron 应用程序中有以下代码 sn-p 来检索 sqlite3 数据库中的给定列:
database.js
var database = require("knex")({
client: "sqlite3",
connection: {
filename: path.join(__dirname, 'db/food.db')
},
useNullAsDefault: true
});
const fetchItems = (colName) => {
let itemList = database.select(colName).from('food')
itemList.then(() => {
// console.log(itemList);
return itemList;
}).catch((err) => {
console.log(err)
return [];
})
}
当我尝试访问数组 itemList 时,我收到了一条消息 undefined。当我尝试将其打印到控制台时,它会显示数据库对象的冗长信息,如下所示:
Builder [object] {
client: Client_SQLite3 {
config: { client: 'sqlite3', connection: [Object], useNullAsDefault: true },
logger: Logger {
_inspectionDepth: 5,
_enableColors: true,
_debug: undefined,
_warn: undefined,
_error: undefined,
_deprecate: undefined
},
connectionSettings: {
filename: '/home/.../db/food.db'
},
connectionConfigExpirationChecker: null,
driver: {
Database: [Function: Database],
Statement: [Function: Statement],
Backup: [Function: Backup],
OPEN_READONLY: 1,
...
如何访问值的数组(即列)?谢谢。
更新:这是我在main.js 中调用此fetchItems 函数的方式。
const database = require('./database');
ipcMain.on("showItemsButtonClicked", function () {
let itemList = database.fetchItems('food_name');
itemList.then(() => {
mainWindow.webContents.send("itemsRetrieved", itemList);
})
console.log(itemList);
});
【问题讨论】:
标签: javascript node.js electron knex.js node-sqlite3