读取javascript中的sql查询输出
我正在尝试用javascript读取SQL查询输出 我正在使用Node.js、Express Engine(MVC模型)读取MySQL数据库,并使用Jade在UI上显示输出 我有一个index.js文件,它从homepage.jade表单字段获取“password”和“user_name”的值。 我必须检查用户输入的密码是否与数据库中的密码匹配。 为此,我正在查询数据库,以获取输入用户名的匹配记录,并希望获取该用户的密码值,并检查它是否等于password的表单值读取javascript中的sql查询输出,javascript,mysql,node.js,express,pug,Javascript,Mysql,Node.js,Express,Pug,我正在尝试用javascript读取SQL查询输出 我正在使用Node.js、Express Engine(MVC模型)读取MySQL数据库,并使用Jade在UI上显示输出 我有一个index.js文件,它从homepage.jade表单字段获取“password”和“user_name”的值。 我必须检查用户输入的密码是否与数据库中的密码匹配。 为此,我正在查询数据库,以获取输入用户名的匹配记录,并希望获取该用户的密码值,并检查它是否等于password的表单值 router.get('/sa
router.get('/sample', function(req, res) {
db=mysql.createConnection(config);
db.connect(function(err){
});
var formpass= req.body.password;
var user_name= req.body.userName;
var sql="select * from user where user_name= 'monicathaneer'";
db.query(sql, function(err_query,data)
{
for a in data
pass= a.password;
}
if(formpass==pass)
{
res.render('Login', {
"Login" : data });
}
});
当我运行节点时,在“a”附近显示意外令牌,在“if”附近显示意外令牌时出错。
我想知道如何从.js文件中的sql输出中读取password属性。您的代码示例有一些语法错误并丢失了大括号。尝试以下操作(假设您使用的是模块): 一些考虑:
- 您不应该尝试手动处理身份验证。考虑使用类似的中间件;<李>
- 您不需要在每次请求时打开和关闭连接。尝试重构代码,以便在应用程序启动时打开连接,并按需使用
data
var是一个数组,包含查询返回的所有行。因此,我得到了第一行行[0]
,以及这个对象的属性.password
。还有一些好的链接:,和。
router.get('/sample', function(req, res) {
var formpass = req.body.password,
user_name = req.body.userName,
sql = "select * from user where user_name = 'monicathaneer'";
var db = mysql.createConnection(config);
db.connect(function (err) {
// you should handle the errors here
});
db.query(sql, function (err_query, data) {
// I'm assuming your query will return just 1 row
// because usernames should be unique
if (formpass === data[0].password) {
res.render(
'Login',
{"Login": data}); // In your context, 'data' contains the user password...
// Do you really want to send it back to the web page?
}
});
db.end(); // you forgot to close your connection.
});