javascript - NodeJs/Express - 访问注册到应用程序的 View 引擎

标签 javascript node.js express

我目前正在编写一个中间件函数,需要一种方法来检查已注册到当前应用程序的 View 引擎。

因为在 express 中可以有两个 View 引擎:

app.engine('pug',...);
app.engine('jade',...);

app.set('view engine','pug');
app.set('view engine','jade');
//To send view
res.render('index.pug',{viewData:{}});
res.render('index.jade',{viewData:{}});

我需要一种方法来确定所有当前 View 引擎的扩展。 但是,在检查 app.get('view engine') 或 app.settings['view engine'] 时,它只是设置为一个字符串(具有最后一次调用该集合的值),而不是我想要的数组预期。

我怎样才能得到我需要的信息?

最佳答案

view engine 定义为“省略时使用的默认引擎扩展”。因此,一次只能有一个 View 引擎。 app.set('view engine', ...) 的调用会覆盖默认值。

要获取所有可用 引擎(通过调用app.engine 设置),您可以使用engines 属性。例如,

console.log(Object.keys(app.engines));
// output: [ '.pug', '.jade' ]

但是,该属性不是 the API 的一部分,因此它可能会在未来的 express.js 版本中中断。

关于javascript - NodeJs/Express - 访问注册到应用程序的 View 引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49552691/

相关文章:

javascript - 如何自动链接一系列 ajax 请求?

javascript - 正则表达式删除URL中的字符串

javascript - 如何从一系列youtube视频链接中获取一系列youtube视频名称?

javascript - 无法弄清楚为什么页面加载在底部? Angular UI-Router 自动滚动问题

javascript - Nodejs http.request 奇怪的延迟

javascript - 具有多个值的 Ext.util.Filter

javascript - 在放置位置将可拖动对象放入可放置对象中

javascript - 使用 cheerio 遍历 DOM - 如何获取所有元素及其对应的文本

node.js - 用属性 : []? 续写最近的问题

node.js - 快速路由文件中的 Nodejs : access socket. io 实例