ReferenceError:未定义连接nodejs mysql

问题描述 投票:0回答:2

我正在关注此网站来创建基本的登录系统:https://codeshack.io/basic-login-system-nodejs-express-mysql/

我的问题是,当我向用户名和密码按钮输入任何值时,我将在此行中获得ReferenceError:未定义连接connection.query('SELECT * FROM accounts where where username =?AND password =?',[用户名,密码],

我检查数据库连接。 我已连接数据库,并且数据库与表一起存在。另外,我安装了mysql程序包。

这是我的源代码:

const mysql = require('mysql');
const express = require('express');
const session = require('express-session');
const bodyParser = require('body-parser');
const path = require('path');

const con = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'nodelogin'
});

const app = express();

app.use(session({
    secret: 'secret',
    resave: true,
    saveUninitialized: true
}));
app.use(bodyParser.urlencoded({extended : true}));
app.use(bodyParser.json());

app.get('/', (req, res)=> {
    res.sendFile(path.join(__dirname + '/login.html'));
});

app.post('/auth', (req, res)=>{
    const username = req.body.username;
    const password = req.body.password;
    const string = "SELECT * FROM accounts WHERE username = ? AND password = ?"
    if (username && password) {
        connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username, password], (err, results, fields)=> {
            if (results.length > 0) {
                req.session.loggedin = true;
                req.session.username = username;
                res.redirect('/home');
            } else {
                res.send('Incorrect Username and/or Password!');
            }           
            res.end();
        });
    } else {
        res.send('Please enter Username and Password!');
        res.end();
    }
});

app.get('/home', (req, res)=> {
    if (req.session.loggedin) {
        res.send('Welcome back, ' + req.session.username + '!');
    } else {
        res.send('Please login to view this page!');
    }
    res.end();
});

con.connect(function(err){
    if(err) throw err;
    console.log("connected");
});

app.listen(8000);

const port = process.env.PORT || 8000;
console.log(`sercer is running on ${port} .`);

mysql node.js connect
2个回答
1
投票

您刚刚将连接命名为'con',因此connection.query无法正常工作,请更改为con.query


0
投票

您正在使用名为con的变量连接到SQL,但使用名为connection的变量来运行名为undefined的查询。

将您的connection.query更新为con.query

© www.soinside.com 2019 - 2024. All rights reserved.