gpt4 book ai didi

javascript - Node.js Knex SQL 插入太慢

转载 作者:行者123 更新时间:2023-11-29 17:19:32 24 4
gpt4 key购买 nike

我有一个基本的登录系统,可以执行以下操作:

  • 检查用户名是否存在(正常)
  • 插入用户名

插入后,我选择插入的用户名id。第一次登录时这是正确的,但是当我注销并使用新用户名登录时,插入速度太慢,导致我的选择抛出异常,因为插入尚未完成。我该如何解决这个问题?

我的代码:

数据库.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)
})
}

登录.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的回调中使用async函数,并在insert中使用await并让用户同步执行这2个方法

关于javascript - Node.js Knex SQL 插入太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51337324/

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