我正在尝试在javascript中读取SQL查询输出 我使用Node.js,Express Engine(MVC模型)来读取MySQL数据库并使用Jade在UI上显示输出。
我有一个文件index.js,它取值'密码'和来自homepage.jade表单字段的' user_name' 我必须检查用户输入的密码是否与数据库中的密码匹配。 我正在查询数据库以获取输入用户名的匹配记录,并希望获取该用户的密码值并检查它是否等于密码的表单值。
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'和意外的令牌附近'如果'当我运行节点。 我想知道如何从.js文件中的sql输出中读取密码属性。
答案 0 :(得分:0)
您的代码示例存在一些语法错误并且丢失了大括号。试试这个(假设您正在使用node-mysql模块):
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.
});
一些注意事项: