如何在expressjs 4.0中设置marko模板引擎

我想使用marko模板引擎和expressjs 4.0当我删除默认的快速模板引擎时,我得到以下错误

错误:没有指定默认引擎,也没有提供扩展名。 在EventEmitter.app.render(E:\ nodeleap \ node_modules \ express \ lib \ application.js:545:12)的新视图(E:\ nodeleap \ node_modules \ express \ lib \ view.js:48:42)在E:\ nodeleap \ config \ express.js:106:19上的Layer.handle [as handle_request](E (E:\ nodeleap \ node_modules \ express \ lib \ router \ index.js:302:13):\ nodeleap \ node_modules \ express \ lib \ router \ layer.js:82:5)下一步(E:\ nodeleap)的Function.proto.process_params(E:\ nodeleap \ node_modules \ express \ lib \ router \ index.js:321:12)上的node_modules \ express \ lib \ router \ index.js:270:在layer.handle [作为handle_request](E:\ nodeleap \ node_modules \ express \ lib \ router \ layer.js:78:12)上创build一个名称为\ node_modules \ express \ lib \ router \ index.js:

它看起来像马克尚不支持快速查看引擎(见这里: https : //github.com/tj/consolidate.js )

编辑:但是,Marko FAQbuild议不要使用快速查看引擎。 下面的选项1应该工作。

所以我看到了一些select,1.直接在每个路由中使用marko来渲染你的模板,或者2.build立你自己的快速查看引擎,甚至可能是3.做一个PR巩固.js来添加marko支持,别人可以享受:)

选项1和2看起来像这样:

var express = require('express'); var app = express(); var fs = require('fs'); var marko = require('marko'); // Option 2 app.engine('marko', function(filePath, options, callback) { marko.load(filePath).render(options, function(err, output) { callback(null, output); }); }); app.set('views', './views'); app.set('view engine', 'marko'); app.get('/viewengine', function(req, res) { res.render('hello', { name: 'Frank' }); }); // Option 1 var template = marko.load(require.resolve('./views/hello.marko')); app.get('/marko', function(req, res) { template.stream({ name: 'Frank' }) .pipe(res); }); var server = app.listen(3000, function() { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port); });