0

上周刚开始学习 Node,我正在尝试使用 express 和 mySQL 创建一个登录页面。

我在互联网上看了一些教程视频,并想出了下面的一组代码。我可以运行此代码而不会弹出错误,但有一点问题是我按下登录按钮后服务器没有重定向到其他页面。

我想知道我的前端部分是否有问题,或者我错过了某些部分。我真的希望你们能帮帮我,因为我已经尝试了大约 3 天来通过这个阶段。

谢谢

请看代码:

路线/login.ejs:

<input id="txtUserName" name="txtUserName" type="text" class="form-control" placeholder="Username" required="" />
</div>
<input id="txtUserPwd" name="txtUserPwd" type="password" class="form-control" placeholder="Password" required="" />
</div>
<button class="btn btn-default submit" href="/users">Log in</button>

意见/login.js:

var express = require('express'),
User = require('../models/user.js'),
router = express.Router(),
crypto = require('crypto'),
title = 'LogIn';


router.get('/', function(req, res) {
   res.render('login', {title:title});
});


router.post('/', function(req, res) {
var userName = req.body['txtUserName'],
    userPwd = req.body['txtUserPwd'],
    md5 = crypto.createHash('md5');

User.getUserByUserName(userName, function (err, results) {
    if(results == '') {
        res.locals.error = 'Accounts Not Exist';
        res.render('login',{title:title});
        return;
    }


    userPwd = md5.update(userPwd).digest('hex');
    if(results[0].UserName != userName || results[0].UserPass != userPwd) {
        res.locals.error = 'Wrong User Name or Password';
        res.render('login',{title:title});
        return;
    } else {
        res.locals.username = userName;
        //設定session
        req.session.username = res.locals.username;
        console.log(req.session.username);
        res.redirect('/');
        return;
    }
});
});
module.exports = router;

模型/user.js

var mysql = require('mysql');
var LocalStrategy = require('passport-local').Strategy;

var connection  = mysql.createConnection({
   host     : 'localhost',
   user     : 'root',
   password : 'testtest'
});

connection.query('USE myfirstwebapp');

function User(user){
   this.username = user.username;
   this.userpass = user.userpass;
};

User.getUserNumByName = function getUserNumByName(username, callback) {

var cmd = "select COUNT(1) AS num from user info where username = ?";
    connection.query(cmd, [username], function (err, result) {
        if (err) {
            return;
        }
        connection.release();
        callback(err,result);
    });
};

User.getUserByUserName = function getUserNumByName(username, callback) {
var cmd = "select * from userinfo where username = ?";
    connection.query(cmd, [username], function (err, result) {
        if (err) {
            return;
        }
        connection.release();
        callback(err,result);
    });
 };
4

0 回答 0