gpt4 book ai didi

javascript - 在knex SELECT之后访问数组值

转载 作者:行者123 更新时间:2023-12-03 12:32:32 25 4
gpt4 key购买 nike

我在Electron应用程序中具有以下代码片段,以检索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,
...
如何访问值的数组(即列)?谢谢。
更新:这是我在 fetchItems中调用此 main.js函数的方式。
const database = require('./database');

ipcMain.on("showItemsButtonClicked", function () {
let itemList = database.fetchItems('food_name');

itemList.then(() => {
mainWindow.webContents.send("itemsRetrieved", itemList);
})
console.log(itemList);
});

最佳答案

我认为您使用的是错误的语法。

  const fetchItems = (colName) => {
let itemList = database.select(colName).from('food').then((res) => {
// console.log(res);
return res;
}).catch((err) => {
console.log(err)
return [];
})
return itemList
}
使用异步等待:
const fetchItems = async(colName) => {
try {
let itemList = await database.select(colName).from('food')
return itemList
} catch(err) {
console.log(err)
return [];
}
}

关于javascript - 在knex SELECT之后访问数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65044107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com