我编写了一个自定义模板引擎,让我可以在重写当前项目时使用我的旧模板。除了 Express.js 总是发送一个
Error: Failed to lookup view (template name)
我在一个文件中有多个模板,每个模板不需要一个文件。但是我怎么能告诉快递呢?
我无法理解这一点。任何帮助表示赞赏
编辑:一些代码:
My Express Setup: (app.js)
var express = require('express');
var app = express();
var gclosure = require('./templateEngine');
var fs = require('fs');
/**
* Setup Express
*/
app.configure(function(){
app.engine('test', gclosure.__express);
app.set('views', __dirname + '/public/templates');
app.set('view engine', 'test');
app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.methodOverride());
app.use(require('less-middleware')({
src: __dirname + '/public'
}));
app.use(express.static(__dirname + '/public'));
});
我的自定义模板引擎 (templateEngine.js)
exports.renderFile = function(path, options, fn){
if ('function' == typeof options) {
fn = options, options = {};
}
try {
fm(null, "This is a test output");
} catch (err) {
fn(err);
}
};
我的快递测试路线:
app.get('/', function(req, res, next) {
res.render('simple',{
title: 'Sources',
data: 'lala',
options: 'miep'
});
});
线索是:当我在模板文件夹中创建一个名为simple.test
的文件时,一切正常,我可以看到测试输出字符串。当我将名称更改为不存在的名称时,输出是
Error: Failed to lookup view (template name)