nodejs使用mysql和htmllogin表单

我从教程中得到了这个简单的代码到一个样本loginHTML表单,以检测用户和密码是否在我的数据库上的用户注册或不。 此代码可以检测到电子邮件,如果存在,但没有密码。
这里有什么问题?

var express = require('express'); var app = express(); var server = require('http').createServer(app); bodyParser = require('body-parser'); var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', database: 'chmult', user: 'root', password: '', }); users = []; connections = []; app.get('/', function(req, res){ res.sendFile(__dirname + '/'); }); app.use(bodyParser.urlencoded({ extended: true })); /**bodyParser.json(options) * Parses the text as JSON and exposes the resulting object on req.body. */ app.use(bodyParser.json()); connection.connect(); app.post('/', function(req, res){ var username= req.body.user.username; var password = req.body.user.password; connection.query('SELECT * FROM tesko WHERE username = ?',[username], function (error, results, fields) { if (error) { // console.log("error ocurred",error); res.send({ "code":400, "failed":"error ocurred" }) }else{ // console.log('The solution is: ', results); if(results.length >0){ if([0].password == password){ res.send({ "code":200, "success":"login sucessfull" }); } else{ res.send({ "code":204, "success":"Email and password does not match" }); } } else{ res.send({ "code":204, "success":"Email does not exits" }); } } }); }); app.listen(3231); console.log('Example app listening at port:3231'); 

我的HTML表单

 <form method="post" action=""> <input type="text" name="user[username]"> <input type="text" name="user[password]"> <input type="submit" value="Submit"> </form> </html> 

我的桌子上的列名是(用户名,密码)。 两者都是varchar,我试着与其他表具有md5。 仍然无法检测到密码。

这一点的代码看起来可疑:

 if(results.length >0){ if([0].password == password){ res.send({ "code":200, "success":"login sucessfull" }); } 

特别是[0].password我希望这是未定义的。

[0]是这里的数组,而不是数组中的索引。 您可能需要结果[0] .password,而不是由它之前的行来判断。