【发布时间】:2012-09-28 19:34:04
【问题描述】:
我正在使用 Node.js + Express 开发一个网站,并使用 Hogan.js 作为视图引擎。
这是我的文件app.js:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'hjs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/about', routes.about);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
文件/routes/index.js是:
/*
* GET pages.
*/
exports.index = function(req, res){
res.render(
'index',
{
title: 'Home Page',
author: 'Bruce Wayne'
}
);
};
exports.about = function(req, res){
res.render(
'about',
{
title: 'About Page',
author: 'Bruce Wayne'
}
);
};
在/views文件夹中,有:
|- part.hjs
|- index.hjs
|- cv.hjs
文件part.hjs是:
<h3>Hello {{ author }}</h3>
文件index.hjs是:
<h1>Title: {{ title }} </h1>
{{> part }}
Welcome to Gotham City.
而文件about.hjs是:
<h1>Title: {{ title }}</h1>
{{> part }}
I'm not Joker.
我有两个问题:
- 如何正确使用页面中的部分? (此代码不起作用)
- 我可以为两个或多个页面使用相同的“标题”而不重复文件
/routes/index.js中的值分配吗?
最好的问候,维。
【问题讨论】:
-
感谢您发布这个问题。嘘。谷歌搜索了一下,直到我偶然发现了这个宝石。
-
我认为奥伦的回答是这个问题的正确答案。
-
这里运行的是哪个版本的 express?
-
什么是部分?
标签: javascript node.js express viewengine hogan.js