错误无法将node.js与mysql一起使用来读取未定义的属性

vwhgwdsa  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(319)

我不断得到这个错误无法读取未定义的属性时,密码不匹配的是什么是数据库,但如果它是相同的一切罚款。

let express = require('express');
let app = express();
let router = express.Router();
let users = require('./users.js');
let ejs = require('ejs');
let pg = require('pg');
let bodyParser = require('body-parser');
let mysql = require('mysql');

let connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "password",
port: 3306,
database: "nodeapp2"
 });
app.use(bodyParser.urlencoded({ extended: true }));

app.get('/input', function(req,res) {
res.sendFile(__dirname + '/views/input.html');
});
app.get('/login', function (req,res) {
   res.sendFile(__dirname + '/views/login.html');
});

app.post('/logincred', function(req, res) {

console.log('req.body');
console.log(req.body);

connection.query("SELECT password FROM logins WHERE password = '"+req.body.password+"'",function(err, result){
    if (err)
        throw err;
        if (result[0].password === req.body.password){
            console.log(req.body.password);
            console.log('password accepted');
            res.redirect('/');
            res.end()
        } else {
            res.redirect('/login')
            res.write('login failed');
            res.end()
        }
});

});

如果我输入了错误的密码,我击中了else子句,当我得到错误,我不知道为什么。

1tu0hz3e

1tu0hz3e1#

看起来像是变量 res 未在匿名回调函数的作用域中的任何位置声明。你用的是 result 在if条件下 result[0].password === req.body.password 但是使用 res 在if/else条款中。尝试使用 result 而不是 res ?

相关问题