Javascript 如何在Express中使用HAML.js呈现HAML模板
我需要在Node.js/Express应用程序中呈现HAML模板。 我尝试将haml.js配置为视图渲染器:Javascript 如何在Express中使用HAML.js呈现HAML模板,javascript,node.js,express,coffeescript,haml,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/Handler中的代码: options = layout: "layout.haml" locals: message: 'world' res.r
haml = require('hamljs')
...
app.set('view engine', 'hamljs')
app.engine('.haml', haml.render)
以及我的GET/
Handler中的代码:
options =
layout: "layout.haml"
locals:
message: 'world'
res.render('index.haml',options)
但应用程序不接收任何数据
这是haml.js中的另一个示例:
但是没有这样的功能。设置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);
嘿,我也有同样的问题。你找到解决办法了吗?我没有找到合适的解决办法。似乎haml.js不能作为中间件(?)工作。所以我手工渲染,同样的事情也发生在我身上。但我能用“合并”渲染出很好的效果。我今天会仔细看一看,可能我只是使用了错误的方法让它自然地与express一起工作。顺便说一句,@SergeyVernidub我希望看到一个手动渲染的例子。你应该尝试使用这个包的手册,也许这个问题已经解决了。您可以将此示例用于手动渲染-。
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);