我正在开发一个简单的web应用程序,使用kiwi模板引擎和express。当我在浏览器中打开我的应用程序时,正确生成了模板,除了结果之外的所有内容都是JSON编码的。 我试过设置res.type('html'),但这似乎只能改变应用程序发送的MIME。我尚未使用任何AJAX请求。Expressjs返回json而不是html
我有下面的代码:
"use strict";
var express = require('express');
var path = require('path');
var publicDir = path.join(__dirname, 'public');
var app = express();
app.configure(function(){
app.set('views', __dirname + '/view');
app.engine('kiwi', require('kiwi').__express);
app.set('view engine', 'kiwi');
app.use(require('less-middleware')({ src: publicDir }));
app.use(express.favicon());
app.use(express.static(publicDir));
});
app.configure('development', function(){
app.use(express.logger());
});
app.get('/', function(req, res){
res.render('index', {title: 'kiwi'});
});
app.listen(process.env.PORT || 8080);
我用这样的布局文件(去除了大部分布局的HTML为便于阅读):
<div class="container">
{{block content}}{{/block}}
</div>
这是index.kiwi文件:
{{extend 'layout'}}
{{block content}}
<p>Hi ${title}</p>
{{/block}}
这是我在浏览器中看到的(使用text/json mime发送的):
"<div class=\"container\">\n\t\n<p>Hi kiwi</p>\n\n</div>"
如何让它发送正常的HTML?
更新:好吧,我设法找到another app类似于我的(使用快递和奇异鸟),只有我发现的区别是库版本。所以我下载了Express 3.0.0beta7并且工作正常。怪怪的?
UPDATE2: bug是3.0.0rc4(HTML输出)和3.0.0rc5(JSON输出)之间
UPDATE3:我认为,只有可能是相关的变化是犯40be3ed05d和9eb1da4568都改变Connect版本也许8edf358739
你可以看到这里的回购:https://github.com/jtojnar/srs
奇怪的行为。谢谢,我现在要使用它,并考虑切换到另一个模板引擎。 – 2013-02-26 15:04:18
它看起来像5个月前固定在github回购([commit d09bb91fbe](https://github.com/coolony/kiwi/commit/d09bb91fbe7c41f1a109a29b7176695c4d2eeebb)),但没有移动到npm。 – 2013-03-13 17:34:57