>source

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

  • 답변 # 1

    잘못된 구문을 사용하고 있다고 생각합니다.

     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
    }
    
    

    async await 사용 :

    const fetchItems = async(colName) => {
      try {
        let itemList = await database.select(colName).from('food')
        return itemList
      } catch(err) {
        console.log(err)
        return [];
      }
    }
    
    

관련 자료

  • 이전 python - 활성 사용자를 Django ModelForms에 전달하는 방법
  • 다음 json - 파이썬 사전으로 아무것도 할 수 없습니까?