nodejs视图不会在布局中显示
我正在尝试使用CoffeeScript,NodeJS和expressJS创build一个简单的布局。 我的咖啡脚本是
routes.coffee我已经将路由文件夹重命名为应用程序,而我的routes.coffee文件位于身份validation文件夹中,例如apps\authentication\routes.coffee
routes = (app) -> app.get "/login", (req , res) -> res.render "#{__dirname}/views/login", title: 'Login', stylesheet: 'login' module.exports = routes
login视图我已经更名为path文件夹应用程序和我的login视图在那里authentication文件夹,即apps\authentication\views\login.jade
extends ../../../views/layout block content form(action='/sessions', method='post') label | Username input(type='text', name='user') label | Password input(type='password', name='password') input(type='submit', name='Submit')
Layout.jade这个文件在默认视图文件夹中。 我正在使用默认布局
doctype html head title= title body #content h1= title block content != body
app.js
require('coffee-script').register(); var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); //var index = require('./routes/index'); //var users = require('./routes/users'); var app = express(); // view engine setup // app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); // app.set('view options', { layout: 'views/layout' }); // uncomment after placing your favicon in /public app.use(favicon(path.join(__dirname, '/public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, '/public'))); // app.use(express.static('public')); app.set('view options', { layout: false }); //app.use('/', index); //app.use('/users', users); require('./apps/authentication/routes')(app); // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app;
我在layout.jade
创build了两个variablestitle
和stylesheet
,但是当我尝试在layout.jade
即title中实现这些variables时,我在标题中得到了undefined
的标题。
任何人都可以帮忙吗?
谢谢。
我想你没有正确使用缩进。 在您的login视图中:
extends ../../../views/layout block content form(action='/sessions', method='post') label | Username input(type='text', name='user') label | Password input(type='password', name='password') input(type='submit', name='Submit')
应该 :
extends ../../../views/layout block content form(action='/sessions', method='post') label | Username input(type='text', name='user') label | Password input(type='password', name='password') input(type='submit', name='Submit')
- Sinon / Node / Express / Mongo – TypeError当试图模拟Mongo DB.collection函数
- 如何使用gulp来设置ExpressJS来自动重新加载(gulp-live-server)
- expression – stormpath电子邮件verfication
- Node Express APP 1到N(使用MongoDB)
- 为什么使用path.join()而不是静态('public')
- 如何使用我的Express 4路由中的socket.io将事件发送到连接的套接字?
- 在Node / Express中哈希,盐和保存密码
- 确保快速应用程序在每个摩卡testing之前运行
- 用户注册和authentication/授权与MEAN堆栈