从零学习node.js之利用express搭建简易论坛(七)

2020-06-17 06:42:22易采站长站整理

var pool = mysql.createPool({
host : '127.0.0.1',
user : 'root',
password : '123',
database : 'forum'
});

module.exports = pool;

3.2 注册功能

注册功能的流程我们非常熟悉了:

加载注册页面;
用户输入数据后提交;
处理表单数据然后进行数据库操作

我们在routes/user.js中创建一个reg的get方式的路由用来加载注册页面:


// routes/user.js

// get方式
router.get('/reg', function(req, res, next) {
res.render('reg', { errmsg:'' }); // 加载reg.ejs模板
});

在views目录下创建reg.ejs:


<!DOCTYPE html>
<html>
<head>
<title>注册</title>
<link rel='stylesheet' href='/stylesheets/style.css' />
<style type="text/css">
.tip{color: #f00;}
</style>
</head>
<body>
<div class="container">
<p><a href="/" rel="external nofollow" rel="external nofollow" rel="external nofollow" >回到首页</a></p>
<h1>注册</h1>
<form action="/user/reg/" method="post">
<% if(errmsg){ %>
<p class="tip">*<%= errmsg %></p>
<% } %>
<p>用  户  名: <input type="text" name="username" required="required"></p>
<p>密  码: <input type="password" name="password" required="required"></p>
<p>重复密码: <input type="password" name="password2" required="required"></p>
<p><input type="submit" name="submit" value="submit"></p>
</form>
<p>已有帐号? <a href="/user/login" rel="external nofollow" >点击登录</a></p>
</div>
</body>
</html>

运行程序,并用浏览器访问127.0.0.1:3000/user/reg,注册页面就出来了。

然后再在routes/user.js中创建一个reg的post方式的路由用来处理提交过来的数据,post方式过来的数据并不能使用

req.query
变量获取,而应该使用
req.body


// routes/user.js

// post方式
router.post('/reg', function(req, res, next) {
var username = req.body.username || '',
password = req.body.password || '',
password2 = req.body.password2 || '';

if(password!=password2){
res.render('reg', {errmsg:'密码不一致'});
return;
}
var password_hash = user_m.hash(password), // 对密码进行加密
regtime = parseInt(Date.now()/1000);

// 数据库处理
});

凡是设计到数据库处理的,我们都将其放到models中。这里,我们在models中创建一个user.js: