【问题标题】:How to render the HAML template with haml.js in Express如何在 Express 中使用 haml.js 渲染 HAML 模板
【发布时间】:2013-09-23 03:57:45
【问题描述】:

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

但是没有这个功能。

【问题讨论】:

  • 嘿,我也遇到了同样的问题。你找到解决方案了吗?
  • 我没有找到任何合适的解决方案。似乎haml.js 不能用作中间件(?)。所以我手动渲染它。
  • 同样的事情发生在我身上。但是我能够使用 consolidate 渲染得很好。今天我会仔细看看,可能我只是使用错误的方法让它自然地与 express 一起工作。顺便说一句,@SergeyVernidub 我很想看看手动渲染的例子。
  • 你应该尝试使用这个手册来打包github.com/visionmedia/haml.js,也许这个问题已经解决了。您可以使用此示例进行手动渲染 - github.com/visionmedia/haml.js/blob/….

标签: javascript node.js express coffeescript haml


【解决方案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);

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多