Expressjs页面无法呈现

时间:2014-02-20 14:44:57

标签: node.js express pug

有时当我加载页面时它根本不呈现,它不会产生任何错误,实际上客户端从服务器获得正确的响应(带有所需的静态内容),但我看到一个空白页面。如果我尝试检查页面上的元素,那么一切都会正确显示。我有以下中间件配置,但我不认为问题在这里:

App.app.set('views', App.appPath("app/views"))
App.app.set('view engine', 'jade');
App.app.set('view options', {
  pretty: env === 'development'
})
App.app.locals({
  constants: App.util('htmlConstants')
})

// Middlewarez
App.app.use(express.logger('dev'))
App.app.use(express.compress())
App.app.use(express.bodyParser())
App.app.use(express.methodOverride())
App.app.use(appCookieParser)
App.app.use(express.session({
    store: appRedisStore
}))
App.app.use(require('stylus').middleware(App.appPath('public')))
App.app.use(App.app.router)

if (App.env === 'development') {

App.test = function(path) {
    return App.require("app/test/" + path)
}

 App.app.use(express.static(App.appPath('public')))
} else {
 App.app.use(express.static(App.appPath('public')), {
    maxAge: settings.oneDay
})
}

App.app.use(function(err, req, res, next) {
  console.log('in error handler')
  console.log(err.message)
  next(err)
});
App.app.use(express.errorHandler());

2 个答案:

答案 0 :(得分:-1)

缓存可能有问题。

而不是:

 App.app.use(express.static(App.appPath('public')))
} else {
 App.app.use(express.static(App.appPath('public')), {
    maxAge: settings.oneDay
})
}

这样做:

//Development only
App.app.configure('development', function() {
    app.use(express.static(App.appPath('public'));
    app.use(express.errorHandler());
});

//Production only
App.app.configure('production', function() {
    var threeMonths = 7884000000; //Cache time in ms
    app.use(express.static(App.appPath('public'), { maxAge: threeMonths }));
});

像这样运行您的应用程序:

sudo NODE_ENV=development node app.js

答案 1 :(得分:-1)

使用console.log('variableName');并观察从db获得数据的变量的值。

如果不正常,则表示您可能无法从服务器端获取数据!