4

我需要在我的 Node.js/Express 应用程序中呈现 HAML 模板。我尝试将haml.js 配置为视图渲染器:

haml = require('hamljs')
...
app.set('view engine', 'hamljs')
app.engine('.haml', haml.render)

我的处理程序中的代码GET /

options =
    layout: "layout.haml"
    locals:
        message: 'world'
res.render('index.haml',options)

但是应用程序没有收到任何数据。

这是 haml.js文档中的另一个示例:

app.engine('.haml', require('hamljs').renderFile);

但是没有这样的功能。

4

1 回答 1

2

设置 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);
于 2014-11-15T04:25:22.230 回答