如何在Express中使用haml.js呈现HAML模板

时间:2013-09-18 11:47:51

标签: javascript node.js express coffeescript haml

我需要在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);

但是没有这样的功能。

1 个答案:

答案 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);