我遇到了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.');
当你想到错误抛出的原因时,这是有意义的;但是,当我确定我指定了一个查看引擎时,会变得混乱。
答案 0 :(得分:4)
啊,完全省略app.configure
包装器。只需将代码置于其中并使其成为顶级代码。 Nodejitsu正在使用NODE_ENV=production
运行您的应用,而不是开发。通常,任何应该始终运行的配置(例如上面的所有代码)都不应放在app.configure
回调中。我从来没有使用app.configure
,因为它基本上没用是如此微不足道,但它的目的是在开发和生产环境之间有所不同。