1

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

我怎样才能使它在我调用res.render('view')它时既能猜也能猜view.jadeview.ejs并使用适当的引擎)?

现在,当我指定 EJS 页面时出现错误

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

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

4

2 回答 2

0

据我所知,我无法为视图做出快速尝试的替代扩展。但那又怎样?如果你知道 "view" 真的是 "view.ejs" 的意思,只要写res.render('view.ejs')和表达就会很乐意遵从你的意愿。作为开发人员,您应该知道您的视图是为什么模板引擎编写的。如果您所在的团队非常分散,以至于前端开发人员和后端开发人员之间的交流不够充分,以至于彼此都不知道对方正在使用什么来编写模板,那么您正在处理一个组织问题,不是编程问题。

于 2012-07-29T09:24:45.620 回答
0

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

将扩展和其他选项传递给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);
    };
});
于 2017-01-18T18:42:24.710 回答