我需要在Node.js / Express应用程序中渲染HAML模板。 我尝试将haml.js配置为视图渲染器:
haml = require('hamljs')
...
app.set('view engine', 'hamljs')
app.engine('.haml', haml.render)
我的GET /
handeler中的代码:
options =
layout: "layout.haml"
locals:
message: 'world'
res.render('index.haml',options)
但是应用程序没有收到任何数据。
这是haml.js documentation中的另一个例子:
app.engine('.haml', require('hamljs').renderFile);
但是没有这样的功能。
答案 0 :(得分:1)
设置haml模板引擎对我来说也不起作用。由于那个主题有一些过时的页面,这可能有点令人困惑,这里是“手动方式”,对我有用:
var haml = require('hamljs');
var fs = require('fs');
var express = require('express');
var app = express();
app.get('/', function(req, res) {
var hamlView = fs.readFileSync('views/home.haml', 'utf8');
res.end( haml.render(hamlView, {locals: {key: 'value'}) );
});
app.listen(process.env.PORT || 3000);