鍍金池/ 問答/數(shù)據(jù)庫  HTML/ express無法連接到mysql數(shù)據(jù)庫

express無法連接到mysql數(shù)據(jù)庫

login代碼:

 $.ajax({
                url: "/login/userlogin",
                data: {
                    username: $("#username").val(),
                    userpwd: $("#userpwd").val()
                },
                type: "POST",
                timeout: 36000,
                dataType: "text",
                success: function (data, textStatus) {
                    var dataJson = eval("(" + data + ")");
                    if (dataJson.lv == 1) {
                        alert("歡迎登陸,管理員!");
                        window.location.href='detail'
                    }
                    else if (dataJson.lv == 2) {
                        alert("歡迎lv-2");
                    }
                    else if (dataJson.code == 300) {
                        alert("賬號不存在,請重新輸入!");
                    }
                    else if (dataJson.code == 400) {
                        alert("密碼有誤,請重新輸入!");
                    } else {
                        alert("登錄出錯!");
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("error:" + textStatus);
                }

            })

login.js代碼:

var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var config = require('../config');
var pool = mysql.createPool(config.mysql);
router.get('/', function(req, res, next) {
    res.render('login');
});
router.post('/userlogin',function (req,res) {
    var username = req.body.username;
    var userpwd = req.body.userpwd;
    console.log(username);
    pool.getConnection(function (err,connection) {
        var $sql = "select * from user where username=?";
        connection.query($sql, [username], function (err, result) {
            var resultJson = result;
            if (resultJson.length === 0) {
                result = {
                    code: 300,
                    msg: '該賬號不存在'
                };
                res.json(result);
                console.log(result);
                connection.release();
            }
            else {
                var $sql1 = "select * from user where username=?";
                connection.query($sql1, [username], function (err, result) {
                    var temp = result[0].userpwd;
                    var lv = result[0].lv;
                    if (temp === userpwd) {
                        if (lv == 1)
                        {result = {
                            code: 200,
                            msg: '密碼正確',
                            lv: 1};
                        }
                        else if(lv == 2)
                        {
                            result = {
                                code: 200,
                                msg: '密碼正確',
                                lv: 2};
                        }
                    }
                    else {
                        result = {
                            code: 400,
                            msg: '密碼錯誤',
                            lv: 0
                        };
                    }
                    res.json(result); 
                    connection.release();
                });
            }
        });
    })
});

一直報錯:

C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\protocol\Parser.js:80
        throw err; // Rethrow non-MySQL errors
        ^
 TypeError: Cannot read property 'query' of undefined
    at C:\Users\hanhb\Desktop\cash\routes\login.js:15:20
    at Handshake.onConnect [as _callback] (C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\Pool.js:58:9)
    at Handshake.Sequence.end (C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
    at Handshake.ErrorPacket (C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\protocol\sequences\Handshake.js:132:8)
    at Protocol._parsePacket (C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\protocol\Protocol.js:279:23)
    at Parser.write (C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\protocol\Parser.js:76:12)
    at Protocol.write (C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\protocol\Protocol.js:39:16)
    at Socket.<anonymous> (C:\Users\hanhb\Desktop\cash\node_modules\mysql\lib\Connection.js:103:28)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)

Process finished with exit code 1



是因為express沒有連接到mysql嗎?

回答
編輯回答
裸橙

324234234

2018年8月22日 07:55
編輯回答
舊顏

pool.getConnection 你這個方法是什么東西? connection.query 先log一下connection是什么東西,connection沒有query這個方法呢

2018年8月8日 08:04
編輯回答
胭脂淚

你的mysql配置有問題,檢查一下你var config = require('../config');這里的的配置

2018年4月24日 17:51