表达3.0.0视图无法渲染

时间:2013-10-08 01:24:23

标签: node.js express pug

我正在使用Guillermo Rauch的书“Smashing Node.js”。第一章。 12在验证示例之前设置一些视图/路由。我尽可能地遵循了教程,并搜索(和搜索)了我的错误。

//package.json
{
"name": "login"
,"version":"0.0.1"
,"main":"./index"
,"dependencies": {
    "express": "3.0.0"
    ,"uglify-js" : "2.4.0"
    ,"mongodb":"1.3.19"
    ,"mongoose":"3.6.20"
    ,"bcrypt":"0.7.7"
    ,"jade":"0.35.0"
}
}

这是我的index.js

/**module dependenies**/
var     express =   require('express')
        ,   mongodb =   require('mongodb');

//set up app

app = express();

//middleware
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({secret: 'my secret'}));

//view options

app.set('view engine', 'jade');
//app.set('views', __dirname + '/views');

//app.set('view options', {layout: false});

//routes

//default route
app.get('/', function (req, res){
    console.log('default');
    res.render('index', {authenticated: false});

});

//login route
app.get('/login', function (req, res){
    console.log('login');
    res.render('login');

});

//signup route
app.get('/signup', function(req, res){
    console.log('signup');
    res.render('signup');

});

//listen

app.listen(3000);

在同一目录下我有一个views / layout.jade文件夹,index.jade,signup.jade,login.jade我会显示两个。
'layout.jade'

doctype 5
html
    head


        title BN Login
    body
        .wrapper
        block body

和index.jade

extends layout
block body
if (authenticated)
    p   Welcome back, #{me.first}
    a(href="/logout") Logout
else
    p Welcome visitor!
    ul
        li: a(href='/login') Login 
        li: a(href="/signup") Signup

我评论过的那些行没有帮助或者已经老了。

layout.jade渲染。控制台显示正在读取代码。没有其他视图呈现。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为您没有正确使用缩进。在您的索引中:

extends layout
block body
if (authenticated)
...
else

应该是:

extends layout
block body
  if (authenticated)
  ...
  else