Nodejitsu – 错误:没有指定默认引擎,没有提供扩展名

我遇到了Nodejitsu的问题。 我的应用程序在本地部署时运行良好,但最近我已经介绍到nodejitsu,并且已经上传了我的应用程序,数据库和所有内容。 但是,当我尝试部署我的应用程序,我不断收到“内部服务器错误”。 当我查看日志时,它告诉我:

Error: No default engine was specified and no extension was provided. 

我在package.json中指定了查看引擎,并在控制应用程序的app.js文件中指定了该引擎。

 app.configure('development', function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.static(__dirname + '/public')); app.use(express.logger('dev')); app.use(express.bodyParser({uploadDir: './uploads' })); app.use(express.cookieParser()); app.use(express.session({secret: 'mySecret', cookie: {maxAge: 25920000000}})); app.use(express.errorHandler()); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router); }); 

package.json是

 "engines": { "node": "0.10.x", "jade": "0.31.0" } 

正如你所看到的,我清楚地设置了视图引擎,但是我不明白为什么会出现这个错误。 我也扫描了抛出错误的行的lib / views.js文件

 if (!ext && !this.defaultEngine) throw new Error('No default engine was specified and no extension was provided.'); 

当你想到错误被抛出的原因时,这是有道理的; 然而,当我确定我指定了一个查看引擎时,会变得混乱。

嗯,完全省略app.configure包装。 只要把它里面的代码,并使其成为顶级。 Nodejitsu运行您的应用程序NODE_ENV=production ,而不是开发。 一般来说,任何应该始终运行的configuration,例如上面的所有代码,都不应该放在app.configurecallback中。 我从不使用app.configure ,因为它基本上是无用的,但它的目的是在开发和生产环境之间有所不同。