現在のプロジェクトの書き直しで古いテンプレートを使用できるように、カスタムテンプレートエンジンを作成しました。Express.jsが常に送信することを除いて、すべてが機能しています
Error: Failed to lookup view (template name)
1つのファイルに複数のテンプレートがあり、テンプレートごとに1つのファイルは必要ありません。しかし、どうすればそれをExpressに伝えることができますか?
私はこれに頭を悩ませることができません。どんな助けでも大歓迎です
編集:いくつかのコード:
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)