簡體   English   中英

Node.js Knex SQL插入太慢

[英]Node.js Knex SQL insert is too slow

我有一個執行以下操作的基本登錄系統:

  • 檢查用戶名是否存在(確定)
  • 插入用戶名

插入后,我選擇插入的usernameid 這在第一次登錄時是正確的,但是當我注銷並使用新的用戶名登錄時,插入速度太慢,導致我的選擇引發異常,因為插入尚未完成。 我怎樣才能解決這個問題?

我的代碼:

Database.js:

getPlayerByName (username) {
    return this.knex("penguins").first("*").where("username", username)
}
getPlayerExistsByName (username) {
    return this.knex("penguins").where("username", username).select("username")
}
insertPlayer (username) {
    return this.knex("penguins").insert({username: username}).then(() => {
        Logger.info(`Inserted ${username}`)
    }).catch((err) => {
        Logger.error(err)
    })
}

Login.js:

function handlePlayer (username, res) {
    database.getPlayerExistsByName(username).then(result => {
        if (result.length != 1) { // Username does not exist
            database.insertPlayer(username) // Insert username
            database.getPlayerByName(username).then(penguin => {
                return write(`&id=${penguin.id}&m=${penguin.mod}${Errors.OK}`, res) // I need the id here
            })
        } else {
            return write(Errors.NAME_UNAVAILABLE, res)
        }
    })
}

嘗試在then的回調中使用異步函數,並在插入中使用await並讓用戶同步執行這兩種方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM