目录结构
1 | └── myapp |
package.json
1 | { |
启动程序
1 | npm run start |
在app.js 文件中指定的端口是9000,可以直接地址栏输入localhost:9000,我这里是nginx反向代理到本地,也只是当初问了尝试nginx
模板选择
app.js中可以引入app实例并设置模板引擎,因为使用的是express,默认的模板引擎是jade,但是个人不太喜欢那个模板,所以用了ejs,跟后台用的
freemarker有点类似。1
2
3
4
5app.set('views',path.join(__dirname,'views'));
app.set('view engine','html');
app.engine('html',require('ejs-mate'));
// app.locals._layoutFile = 'layout.html';
app.use(layout()); //引入了layout模块,原来使用上面那句发现在模板使用的过程中有一个小bug,故引入该木块
路由
在app.js中,添加了错误处理方法,以及4041
2
3
4
5
6
7
8var webRouter = require('./web_router');
app.use(errorPageMiddlewares.errorPage);
app.use('/',webRouter);
app.use('/*',function(req,res){
if (!res.headersSent) { //这里也是个小坑,在后面进行解释
res.render404();
}
});
为了让app.js稍微好点看,把路由这一块单独拉出去处理了。
web_router.js,只是为了搭建子,所以先随便定义了几个路由处理1
2
3
4
5
6
7
8
9
10
11var express = require('express');
var router = express.Router();
var site = require('./controllers/site');
//首页
router.get('/',site.index);
//列表
router.get('/list',site.list);
//安全中心
router.get('/safe',site.safe);
//个人中心
router.get('/user',site.user);
统一在C层进行路由控制,以及模板渲染
模板渲染
1 | exports.list = function(req,res,next){ |
一个渲染的小例子,具体可参考官方文档,这样会更准确一点。
服务启动
1 | app.listen(config.port,function(){ |
这段代码,貌似真的没有多讲的,如有不懂,自行google。