将页脚添加到我的Jade模板时,超出了最大调用堆栈大小

时间:2013-03-17 01:03:05

标签: node.js express pug

好的,这有点奇怪,但情况就是这样。

我正在玩Express和Jade诱人系统。

我有一个相当简单的layout.jade文件:

doctype 5
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
    h1 Nav goes here!
  body
    block content

home.jade文件:

扩展布局

block content
  h1= title
  p Welcome to #{title}

以上组合效果很好。

但是,我想添加一个页脚,所以我创建了一个foot.jade文件:

extends layout

block foot
  h1= me

并将include foot添加到我的layout.jade文件中。

现在,如果我尝试访问我的应用的主页,即会收到Maximum call stack size exceeded错误:/

我的app.js文件是:

/**
 * Module dependencies.
 */

var express = require('express')
  , home = require('./routes/home')
  , http = require('http')
  , path = require('path');

var app = express();

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('your secret here'));
  app.use(express.session());
  app.use(app.router);
  app.use(require('stylus').middleware(__dirname + '/public'));
  app.use(express.static(path.join(__dirname, 'public')));
});

app.configure('development', function(){
  app.use(express.errorHandler());
});

app.get('/', function(req, res) {
  res.render('home', {title: 'Ninja Store'});
});

http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

1 个答案:

答案 0 :(得分:3)

foot.jade使用extends layout加载layout.jade,其foot.jade包含extends layout,其中layout.jade加载extends layout, ...

换句话说:从foot.jade移除{{1}};)