gpt4 book ai didi

javascript - 如何获取mysql数据库中的账户

转载 作者:行者123 更新时间:2023-12-02 21:51:49 25 4
gpt4 key购买 nike

我正在使用三层架构以及expressdocker来实现一个网络应用程序。我还使用 mysql 来存储帐户。这是我的 initialize-database.sql 文件:

CREATE TABLE accounts(
personId INT NOT NULL,
username VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
userPassword VARCHAR(255) NOT NULL,
CONSTRAINT id_pk PRIMARY KEY (personId)
)

在我的数据访问层中,我有向数据库发送查询的帐户存储库文件:

const db = require('./db')
exports.getAccount = function(username, userPassword, callback){

const query = "SELECT * FROM accounts WHERE username = ? AND userPassword = ?"
const values = [username, userPassword]

db.query(query, values, function(error, account){

if(error){
callback("DatabaseError", null)
}else{
callback(account)
}
})
}

现在,在我的 app.js 文件中,我想在登录时检查该帐户是否存在:

app.post("/login", function(request, response){

var username = request.body.username
var userPassword = request.body.password
if (username && userPassword) {
account.getAccount(username, userPassword, function(error, result){

if(error){
response.send("<h1>Error with database</h1>")
}
if(result){
request.session.isLoggedIn = true
request.session.username = username
response.redirect("/")
}
})
}
})

但是这里我收到一个错误,指出结果为null。我究竟做错了什么?

提前致谢!

最佳答案

这应该是一个简单的修复,您只需更改 getAccount 函数,如下所示:

const db = require('./db')
exports.getAccount = function(username, userPassword, callback){

const query = "SELECT * FROM accounts WHERE username = ? AND userPassword = ?"
const values = [username, userPassword]

db.query(query, values, function(error, account){

if(error){
callback("DatabaseError", null)
}else{
callback(null, account)
}
})
}

回调的第一个参数应该是发生的任何错误,因此当查询成功时,它应该为null!

关于javascript - 如何获取mysql数据库中的账户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60116479/

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