Ошибка не может прочитать свойство undefined, используя node.js с mysql - PullRequest
0 голосов
/ 07 ноября 2018

Я получаю эту ошибку: невозможно прочитать свойство undefined, если пароль не совпадает с тем, что является базой данных, однако, если он совпадает, все нормально.

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, то когда я получаю ошибку, и я не уверен, почему.

1 Ответ

0 голосов
/ 07 ноября 2018

Похоже, переменная res нигде не объявлена ​​в области действия функции анонимного обратного вызова. Вы используете result в условии if result[0].password === req.body.password, но используете res в предложениях if / else. Попробуйте использовать result вместо res?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...