【问题标题】:Title not defined...node.js, express,jade, twitter bootstrap标题未定义...node.js, express,jade, twitter bootstrap
【发布时间】:2013-05-16 20:17:40
【问题描述】:

我目前正在尝试学习 node.js,并且正在使用 express 和 jam。我正在尝试让 twitter 引导程序正常工作,但遇到了问题……这是我的错误:

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...这有什么不同吗?

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:

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

    试试:

    layout.jade

    title = title
    

    index.js

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

    【讨论】:

    • 太棒了!修复将标题传递给布局的工作....由于某种原因,我在布局中修复标题时出错,所以我将其保留为 title = title 谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 2018-11-07
    • 1970-01-01
    • 2016-03-22
    • 2015-07-13
    • 2012-08-07
    • 2015-11-23
    相关资源
    最近更新 更多