上周刚开始学习 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);
});
};