2.1 模板引擎
express里默认使用的模板引擎是jade,不过我们也可以选择其他的模板引擎,我这里选择了ejs,因为感觉ejs更像是个html文件,方便维护,当然,每个人都有自己的喜好。
$npm install ejs --save-dev 然后在app.js中修改模板引擎:
app.set('view engine', 'ejs'); // 原为jade,现改为ejs这里我会将views目录中的.jade文件清空,后续使用.ejs编写模板。
2.2 模型
这里我们说的模型是指MVC中的M,主要是进行数据库的连接和操作。创建models目录用来存放文件。
2.3 数据库
我们使用mysql数据库来存放数据,数据库名称可以叫做forum。里面有3张表:user, list, reply。
user表(用户)的字段有: id, username, password, regtime
list表(主题)的字段有: id, uid(用户id), title, content, createtime
reply表(回复)的字段有: id, pid(主题id), uid(用户id), content, createtime
2.4 路由
上节我们是使用
app.use()或
app.get()等方式来实现路由,同时,express还提供了
express.Router类来创建模块化。可挂载的路由。Router 实例是一个完整的中间件和路由系统,因此常称其为一个 “mini-app”。在routes/user.js中(这里我将其users.js改为了user.js):
var express = require('express');
var router = express.Router(); // 实例化router// 定义主页的路由
router.get('/', function(req, res, next) {
res.render('index', { title: 'user' }); // 加载index.ejs模板并传递数据给模板
});
router.get('/reg', function(req, res, next) {
res.render('index', { title: 'reg' });
});
module.exports = router;
然后在app.js中加载路由模块:
var user = require('./routes/user');
//...
app.use('/user', user);这样就可以访问/user和/user/reg页面了。如果需要增加其他的路由,则依照此方式创建添加即可。
三、注册与登录
我们论坛的功能:注册、登录、发布主题和回复主题。这4个功能的实现都需要连接数据库。
3.1 数据库连接
引入mysql模块,然后使用
mysql.createPool()创建连接:
$npm install mysql --save-dev在models目录下创建db.js,其他需要操作数据库的,首先引入db.js:
var mysql = require('mysql');









