2013-05-16 43 views
0

我目前正在尝试学习node.js,我正在使用express和jade。我试图让Twitter的引导工作,但我遇到了问题...这是我的错误:标题未定义... node.js,express,jade,twitter bootstrap

ReferenceError: C:\Users\acraze\chatty\views\index.jade:4 
2| 
3| block content 
> 4| div.top 
5|  form.form-horizontal(method="post", id="loginForm") 
6|  label Username 
7|  input.span3(id="username", type="text", name="User", placeholder="Enter your username") 

这里是长什么样我index.js,如:

var express = require("express"); 
var app = express(); 
var port =3700; 

app.set('views', __dirname + '/views'); 
app.set('view engine', "jade"); 
app.engine('jade', require('jade').__express); 
app.get("/", function(req, res){ 
res.render("index"); 
}); 

app.use(express.static(__dirname + '/public')); 
var io = require('socket.io').listen(app.listen(port)); 
console.log("Listening on port " + port); 

io.sockets.on('connection', function (socket) { 
socket.emit('message', { message: 'welcome to the thunderdome lulz' }); 
socket.on('send', function (data) { 
    io.sockets.emit('message', data); 
}); 
}); 

这里是我的layout.jade

!!! 
html 
    head 
    title= title 
    link(rel='stylesheet', href='/bootstrap/css/bootstrap.min.css') 
    link(rel='stylesheet', href='/bootstrap/css/bootstrap-responsive.min.css') 
    link(rel='stylesheet', href='/stylesheets/style.css') 
    script(src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js') 
    script(src='/bootstrap/js/bootstrap.min.js') 
    body 
    block content 

,这里是我的index.jade

extends layout 

block content 
    div.top 
    form.form-horizontal(method="post", id="loginForm") 
     label Username 
     input.span3(id="username", type="text", name="User", placeholder="Enter your username") 
     label Password 
     input.span3(id="password", type="password", name="Password") 
     input.btn(type="submit", value="Log In") 
    div.container 
    div.content 
     table.table.table-striped 
     thead 
      tr 
      th Table 
      th Heading 
     tbody 
      tr 
      td Test1 
      td Test2 
      tr 
      td Hello 
      td World 

    div.footer 

这是否有什么事做res.render("index");行?我真的很困惑......我目前正在使用express,socket.io和jade的最新版本......这有什么区别吗?

回答

2

您需要将您的标题传递给布局。

尝试:

layout.jade

title = #{title} 

index.js

res.render('index', {title:'your_page_title'}); 
+0

真棒!修复通过标题布局工作....出于某种原因,我得到错误做标题修复布局,所以我只是把它作为'title = title'谢谢! – accraze

+0

同意了,'title =#{title}'不起作用。 – medoix

相关问题