javascript - 错误无法使用node.js和mysql读取未定义的属性

标签 javascript mysql node.js express

当密码与数据库不匹配时,我不断收到此错误“无法读取未定义的属性”,但是如果密码相同则一切正常。

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 子句,当我收到错误时,我不知道为什么。

最佳答案

看起来变量 res 没有在匿名回调函数范围内的任何地方声明。您在 if 条件 result[0].password === req.body.password 中使用 result,但在 if 中使用 res/else 子句。尝试使用 result 而不是 res

关于javascript - 错误无法使用node.js和mysql读取未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197609/

相关文章:

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - 语法错误: Unexpected Identifier

mysql - 我如何查询某行在另一个表中是否有N行那个外键呢?

mysql - MySQL中的递归组结构

javascript - 将功能分配给事件

node.js - thrift Node js 中是否存在客户端超时

javascript - cordova 内容安全策略给出登录问题

javascript - 在 Web Worker 中调用 postMessage onmessage 回调抛出 SYNTAX_ERR : DOM Exception 12

php - Laravel 唯一规则验证器在 Validator::make 期间被破坏

node.js - Angular-cli和npm无法安装 Node 模块