使用nodejs& amp;渲染时,Vash视图引擎始终会出错。表达3

时间:2015-01-02 12:00:48

标签: node.js viewengine vash

我正在使用带有nodejs&的视图引擎vash。 express 3和我的index.vash和layout看起来如下:

// index.vash
@html.extend('layout', function(model){
    @html.block('body', function(model){
        <span class="name">Welcome</span>
    })
})

// layout.vash
<p>
    @html.block('body')
</p>

app.js:

app.get('/', function (req, res) {
    res.render('index');
});

在app.js中我设置了视图引擎:app.set('view engine', 'vash'); 所以这些例子与github上描述的1:1相同。

This问题是一样的,除了解决方案对我不起作用。他建议你应该给layout.vash提供正确的路径,但我在同一目录'views'中得到了两个vash文件(索引和布局)。我也尝试了@html.extend('views/layout'..,但这也没有用。

每次运行项目时,它都会为index.vash显示以下错误:

  

快速
    500 TypeError:在第5行渲染模板时出现问题,字符1     原始消息:对象不是函数     语境:     
    
    3 | @html.block('body',function(model){
    4 |欢迎
     - &GT; 5 | })
    6 | })
    
    在C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2213:4     at Object.vash.loadFile(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2072:10)     在helpers.extend(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2190:8)     在eval(eval at(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:1820:24),:17:21)     在链接(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:1860:12)     在C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2082:21     at Object.vash.loadFile(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2070:10)     在View.vash.renderFile [作为引擎](C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2078:8)     在View.render(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ express \ lib \ view.js:76:8)     在Function.app.render(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ express \ lib \ application.js:504:10)

2 个答案:

答案 0 :(得分:0)

我终于解决了问题,在调用extend时,index.vash中的路径不正确,我只需要添加一个尾部斜杠(“/ layout”)。

答案 1 :(得分:0)

就我而言,我正在将项目从MVC迁移到Node / Vash Vash布局文件有一些注释的MVC代码,这导致了渲染问题。