Node.js EJS和灰尘-并排

Node.js EJS和灰尘-并排,node.js,ejs,dust.js,Node.js,Ejs,Dust.js,我将node.js与express和ejs一起使用 我应该将我的站点从ejs移动到另一个模板引擎-dust.js。我想能够移动模板从一个模板引擎到另一个一个。我看到的问题是,两者都重写res.render方法 我可以考虑的解决方案是存储res.rendervar render_ejs=res.render在需要ejs之后但在需要dust.js之前。然后,在dust.js required之后-存储新渲染,但使用不同的名称res.render\u dust=res.render,并再次使用ejs名

我将node.js与express和ejs一起使用

我应该将我的站点从ejs移动到另一个模板引擎-dust.js。我想能够移动模板从一个模板引擎到另一个一个。我看到的问题是,两者都重写res.render方法

我可以考虑的解决方案是存储res.render
var render_ejs=res.render在需要ejs之后但在需要dust.js之前。然后,在dust.js required之后-存储新渲染,但使用不同的名称
res.render\u dust=res.render
,并再次使用ejs名称覆盖渲染
res.render=dust.render


什么是让他们生活在一起的正确方法?

这里有一个简单的例子,说明如何同时使用两个引擎(我使用Jade,因为灰尘让我对
require.path
感到有些悲伤):

因此,诀窍是在
render()
中使用文件扩展名,它与
app.engine
相结合,将使Express使用适当的模板引擎。

谢谢@robertklep

最后,
整合
(node.js模板引擎整合库)解决了我的问题

以下是一个工作示例:

var http = require("http");
var express = require("express");
var app = express();
var express = require("express");
var app = express.createServer();
var dust = require('dustjs-linkedin'),
    cons = require('consolidate');
app.engine('dust', cons.dust);
app.get("/dust", function(req, res) {
    res.render('dust_template.dust', {header: 'DUST - TEST OK'});
});
app.get("/ejs", function(req, res) {
    res.render('ejs_template.ejs', {header: 'EJS - TEST OK'});
});
app.listen(80);

ejs\u template.ejs
dust\u template.dust
文件位于
views
文件夹中。

要解决express 3+和dust的require.path问题,您需要从dust移动到dustjs linkedn。
var http = require("http");
var express = require("express");
var app = express();
var express = require("express");
var app = express.createServer();
var dust = require('dustjs-linkedin'),
    cons = require('consolidate');
app.engine('dust', cons.dust);
app.get("/dust", function(req, res) {
    res.render('dust_template.dust', {header: 'DUST - TEST OK'});
});
app.get("/ejs", function(req, res) {
    res.render('ejs_template.ejs', {header: 'EJS - TEST OK'});
});
app.listen(80);