[英]Node.js Knex SQL insert is too slow
我有一個執行以下操作的基本登錄系統:
插入后,我選擇插入的username
的id
。 這在第一次登錄時是正確的,但是當我注銷並使用新的用戶名登錄時,插入速度太慢,導致我的選擇引發異常,因為插入尚未完成。 我怎樣才能解決這個問題?
我的代碼:
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.