Nodejs查看猜测多个扩展

时间:2012-07-29 02:53:40

标签: node.js express pug ejs

我将Jade设置为我的主要视图引擎,但在ejs中也有一些页面

我怎样才能这样做,当我致电res.render('view')时,它会猜到view.jade以及view.ejs(并使用适当的引擎)?

现在我在指定EJS页面时收到错误

failed to located view "viewname", tried:
/views/viewname.jade
/views/viewname/index.jade
/views/../viewname/index.jade

节点的哪个部分定义了尝试的视图?连接/ Express吗?视图引擎本身? 我可以用app.register或类似的东西做什么吗?

2 个答案:

答案 0 :(得分:0)

我没有办法明确尝试替代视图的扩展。但那又怎么样?如果你知道"查看"真的意味着" view.ejs",只需写res.render('view.ejs'),快递将非常乐意遵守您的意愿。作为开发人员,您可能需要知道您的视图所针对的模板引擎。如果你是一个如此支离破碎的团队的一部分,以至于前端开发人员和后端开发人员彼此之间的谈话不足以知道对方用来编写模板的内容,那么你和#39;处理组织问题,而不是编程问题。

答案 1 :(得分:0)

我不确定如何指定要使用的引擎,但可以让Node Express服务器从多个扩展中进行选择(基于您所说的内容)。

passing extensions and other options to express.static

一个简单的Express服务器示例:

var express = require('express'),
    port = 3000,
    app = express()
;

app.use('/views/', express.static('views', {extensions: ['jade', 'ejs']}));

app.listen(port, function(error) {
    if (error) {
        console.error(error);
    } else {
        console.info('==>   Listening on port %s. Open up http://localhost:%s/ in your browser.', port, port);
    };
});