gpt4 book ai didi

mysql - 无法在 Node js的 Controller 中返回结果

转载 作者:行者123 更新时间:2023-11-29 15:16:40 24 4
gpt4 key购买 nike

我没有在 Controller 上得到结果,但在模型中得到结果。我还从模型返回了结果数据。我也使用了callback(),但没有得到结果。

型号代码

//here is my code User.js(model)

var con = require('../config/connection');

module.exports = {
validateUser: function (username = null, password = null) {
var sql = "SELECT * FROM users WHERE email_id='" + username + "' AND password = '" + password + "'";
con.query(sql, function (err, result) {
return result;
});
}
}

//contoller code

const UserModel = require('../model/User');

router.post('/validate', (req, res) => {
var password = md5(req.body.password);
var result = UserModel.validateUser(req.body.emailid, password);
console.log(result);
});

请告诉我,我哪里做错了。谢谢

最佳答案

您正在使用回调来调用数据库查询,但同时您的验证函数也应该是异步的。尝试像这样更改您的代码:

User.js(模型)

var con = require('../config/connection');

module.exports = {
validateUser: function (username = null, password = null, cb = () => {}) {
var sql = "SELECT * FROM users WHERE email_id='" + username + "' AND password = '" + password + "'";
con.query(sql, function (err, result) {
if(err) cb(err);
else cb(null, result);
});
}
}

Controller 代码:

const UserModel = require('../model/User');

router.post('/validate', (req, res) => {
var password = md5(req.body.password);
UserModel.validateUser(req.body.emailid, password, (err, result) => {
if(err) console.log("error => ", err);
else console.log(result);
});
});

希望这有帮助:)

关于mysql - 无法在 Node js的 Controller 中返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59658814/

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