Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js:consolid.js+;翡翠不能正确渲染翡翠_Node.js_Express_Pug - Fatal编程技术网

Node.js:consolid.js+;翡翠不能正确渲染翡翠

Node.js:consolid.js+;翡翠不能正确渲染翡翠,node.js,express,pug,Node.js,Express,Pug,我正在使用Express@3.0.0rc2 + jade@0.2.3 + consolidate@0.5.0. 呈现页面时,输出结果与预期不符。这是翡翠: 翡翠索引 extends ../../layouts/default block headIncludes link(href='/_widgets/search/index.css',rel='stylesheet') block footerIncludes script(type='text/javascript',sr

我正在使用Express@3.0.0rc2 + jade@0.2.3 + consolidate@0.5.0. 呈现页面时,输出结果与预期不符。这是翡翠:

翡翠索引

extends ../../layouts/default
block headIncludes
    link(href='/_widgets/search/index.css',rel='stylesheet')
block footerIncludes
    script(type='text/javascript',src='/_widgets/search/index.js')
    script(src='/views/site/home/js/index.js')

block content
    header(class='jumbotron masthead')
       div.inner
           h1 Pricing Page
//Search
div.row-fluid
    div(class='span12 centeredText',id='searchWidget')
div.row-fluid
    div.span12
div.row-fluid
    div.span12
div.row-fluid
    div.span12
以下是输出:

<extends>../../layouts/default</extends><block>headIncludes</block> link(href='/_widgets/search/index.css',rel='stylesheet') <block>footerIncludes</block>  script(type='text/javascript',src='/_widgets/search/index.js')  script(src='/views/site/home/js/index.js')   <block>content</block> header(class='jumbotron masthead')      div.inner           h1 Pricing Page     //Search    div.row-fluid       div(class='span12 centeredText',id='searchWidget')  div.row-fluid       div.span12  div.row-fluid       div.span12  div.row-fluid       div.span12               
settings.js

var express = require('express')
, RedisStore = require('connect-redis')(express)
, url = require("url")
, cons = require('consolidate')

exports.boot = function(app, config, passport){
   bootApplication(app, config, passport)
}

 // App settings and middleware

 function bootApplication(app, config, passport) {

   app.set('showStackError', true)

   app.use(express.static(__dirname + '/public'))

   app.use(express.logger(':method :url :status'))

// set views path, template engine and default layout


 app.configure(function () {

 app.engine('jade', require('jade').renderFile)

 app.set('views', __dirname + '/app/views')
 app.set('view engine', 'jade')
 app.set('view options', { layout: false })

// cookieParser should be above session
app.use(express.cookieParser())

// bodyParser should be above methodOverride
app.use(express.bodyParser())
app.use(express.methodOverride())

var redisURL = process.env.REDISTOGO_URL || config.redis
console.log(redisURL)
var redisUrl = url.parse(redisURL),
    redisAuth = redisUrl.auth.split(':');  
app.set('redisHost', redisUrl.hostname);
app.set('redisPort', redisUrl.port);
app.set('redisDb', redisAuth[0]);
app.set('redisPass', redisAuth[1]); 

app.use(express.session({
  secret: '......',
  cookie: { maxAge: new Date(Date.now() + 360000)}, //1 Hour
  store: new RedisStore({
        host: app.set('redisHost'),
        port: app.set('redisPort'),
        db: app.set('redisDb'),
        pass: app.set('redisPass')
    })
}))



app.use(passport.initialize())
app.use(passport.session())

app.use(express.favicon())

require('./config/customMiddleware').boot(app)  

// routes should be at the last
app.use(app.router)

// assume "not found" in the error msgs
// is a 404. this is somewhat silly, but
// valid, you can do whatever you like, set
// properties, use instanceof etc.



app.use(function(err, req, res, next){
  // treat as 404
  if (~err.message.indexOf('not found')) return next()

  // log it
  console.error(err.stack)

  // error page
  res.status(500).render('500')
})

// assume 404 since no middleware responded
app.use(function(req, res, next){
  res.status(404).render('404', { url: req.originalUrl })
})

})

app.set('showStackError', false)

}

这对我来说真的很奇怪,因为Jade看起来有点像是在编译,只是不像预期的那样。有什么想法吗?

你需要将
jade
更新到一个新版本——至少对于
block
extends

当前版本为



您可能还需要更新
express
,它不再是
rc
at。

谢谢,我已经更新了Jade和express,现在它可以正常工作了。再次感谢你的帮助,乔纳森。
<block>headIncludes</block>
....
var app = express()
require('./settings').boot(app, config, passport)  
var express = require('express')
, RedisStore = require('connect-redis')(express)
, url = require("url")
, cons = require('consolidate')

exports.boot = function(app, config, passport){
   bootApplication(app, config, passport)
}

 // App settings and middleware

 function bootApplication(app, config, passport) {

   app.set('showStackError', true)

   app.use(express.static(__dirname + '/public'))

   app.use(express.logger(':method :url :status'))

// set views path, template engine and default layout


 app.configure(function () {

 app.engine('jade', require('jade').renderFile)

 app.set('views', __dirname + '/app/views')
 app.set('view engine', 'jade')
 app.set('view options', { layout: false })

// cookieParser should be above session
app.use(express.cookieParser())

// bodyParser should be above methodOverride
app.use(express.bodyParser())
app.use(express.methodOverride())

var redisURL = process.env.REDISTOGO_URL || config.redis
console.log(redisURL)
var redisUrl = url.parse(redisURL),
    redisAuth = redisUrl.auth.split(':');  
app.set('redisHost', redisUrl.hostname);
app.set('redisPort', redisUrl.port);
app.set('redisDb', redisAuth[0]);
app.set('redisPass', redisAuth[1]); 

app.use(express.session({
  secret: '......',
  cookie: { maxAge: new Date(Date.now() + 360000)}, //1 Hour
  store: new RedisStore({
        host: app.set('redisHost'),
        port: app.set('redisPort'),
        db: app.set('redisDb'),
        pass: app.set('redisPass')
    })
}))



app.use(passport.initialize())
app.use(passport.session())

app.use(express.favicon())

require('./config/customMiddleware').boot(app)  

// routes should be at the last
app.use(app.router)

// assume "not found" in the error msgs
// is a 404. this is somewhat silly, but
// valid, you can do whatever you like, set
// properties, use instanceof etc.



app.use(function(err, req, res, next){
  // treat as 404
  if (~err.message.indexOf('not found')) return next()

  // log it
  console.error(err.stack)

  // error page
  res.status(500).render('500')
})

// assume 404 since no middleware responded
app.use(function(req, res, next){
  res.status(404).render('404', { url: req.originalUrl })
})

})

app.set('showStackError', false)

}