我目前正在编写一个中间件函数,需要一种方法来检查已注册到当前应用程序的 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/