mysql - SELECT 查询的问题(NodeJs 和 mySQL)
问题描述
简单的用户登录应用程序出现问题。那里有代码。
exports.postLogIn = (req,res,next) =>{
const reqName = req.body.name;
const reqPassword = req.body.password;
console.log(reqName,reqPassword);
db.query('SELECT * FROM userinfo WHERE name = ? AND password = ?', [reqName, reqPassword], function(error, results, fields) {
console.log(results.toString());
console.log(error);
console.log('qirwoe');
res.end();
});
// User.userRequest(reqName,reqPassword, userInfo =>{
// console.log();
// if(userInfo.length>0){
// console.log('fail');
// // return res.render('user/fail')
// }
// console.log('aproved!');
// // return res.render('user/index',{user:userInfo,pageTitle:'Social Reporter',path:'/'})
// res.redirect('/');
// });
}
所以,它根本不起作用,我没有从 console.logs 或任何东西得到任何响应。
这是我观察到的,
SELECT *
FROM userinfo
WHERE name = 'Gui' AND password = '123465'
在 mySQL 上运行此代码确实有效。我在 mySQL 工作台上得到回复。
我可以在我的数据库上正常插入东西。所以连接正常。
我确实得到了正确的 req.body,所以输入“?” mysql命令是对的
我执行了以下命令来导入 mysql 'npm install --save mysql2'
无论如何,不知道还能做什么,如果我需要提供更多信息,请告诉我。感谢大家的关注!
解决方案
问题解决了!
对于那些有同样问题的人,我会在这里发布我的答案。
因此,通过一些研究,我发现这可能是一个异步问题,@esqew 评论也是如此。
然后我试图删除那些行,
db.query('SELECT * FROM userinfo WHERE name = ? AND password = ?', [reqName, reqPassword], function(error, results, fields) {
console.log(results.toString());
console.log(error);
console.log('qirwoe');
res.end();
});
这是问题所在,并替换为异步函数:
async function loginAttempt () {
let [rows, fields] = await db.execute('SELECT * FROM userinfo WHERE name = ? AND password = ?', [reqName, reqPassword]);
console.log(rows);
}
loginAttempt();
问题已解决,请注意 mySQL 查询中的同步/异步功能。再次,如果我对任何信息有误,请纠正我。
希望我能帮助任何人。
推荐阅读
- .net-core - 创建一个 Nuget 包而不将该依赖项添加到当前项目?
- python - Django 2.1.3/SQLite:唯一约束失败:users_profile.user_id || 尝试访问我的超级用户帐户时
- python - AttributeError:'list'对象没有属性'split'-使用croniter打印下一个crontab计划作业-stdout-Python
- ruby - 是否可以在 ruby 的类中调用覆盖的 to_s?
- matlab - 如何绘制离散(z 域)传递函数的斜坡响应?[MATLAB]
- matlab - 如何绘制带有约束的曲面图
- c# - 以定义的顺序调用多个方法
- laravel - 使用 Laravel Eloquent 检索所有父值
- react-native - React Navigation:切换到不同的堆栈并能够返回到上一个堆栈
- c - gsl_vector_get() 在 printf() 中返回错误值