Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Express中使用HAML.js呈现HAML模板_Javascript_Node.js_Express_Coffeescript_Haml - Fatal编程技术网

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

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

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