在工程目录中,有如下文件
express允许使用不同的view engine 和 css engine. 默认的view engine是jade, 不过我更喜欢Razor风格的视图引擎。比如jshtml和vash. 经过比较后,最后选择了vash。
首先修改package.json,添加vash依赖.
{ "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node app.js" }, "dependencies": { "express": "3.4.7", "vash" : "*", // <-- add this line * } }
再修改app.js,添加 vash 视图引擎
app.set('view engine', 'vash');
var vash = require('vash'); vash.config.debug = true;
var express = require('express'); var routes = require('./routes'); var user = require('./routes/user'); var http = require('http'); var path = require('path'); var vash = require('vash'); // <-- include the module * var app = express(); app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'vash'); // <-- indicates the view engine * app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // when the server is running in development mode if ('development' == app.get('env')) { vash.config.debug = true; // <-- add this line * app.use(express.errorHandler()); } // register the routes app.get('/', routes.index); app.get('/users', user.list); http.createServer(app).listen(app.get('port'), function() { console.log('Express server listening on port ' + app.get('port')); });
app.js 中的app.get('/', routes.index); 注册了首页的controller, 对应的是 /routes/index.js 文件中的index方法
exports.index = function(req, res){ var model = { title : 'Page Title' }; res.render('index', model); };
创建index.vash, 代码如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>@model.title</title> </head> <body> @model.title </body> </html>
@model用于访问从controller中传递过来的model
试试访问 http://127.0.0.1:3000 试试, 此时能够看到页面了