【问题标题】:Nodejitsu - Error: No default engine was specified and no extension was providedNodejitsu - 错误:未指定默认引擎且未提供扩展名
【发布时间】:2013-09-02 18:07:28
【问题描述】:


我在使用 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.');

当您想到为什么会抛出错误时,这是​​有道理的;但是,当我确定我指定了查看引擎时,就会变得混乱。

【问题讨论】:

    标签: node.js view nodejitsu


    【解决方案1】:

    啊,完全省略 app.configure 包装器。只需将其中的代码放在顶层即可。 Nodejitsu 使用NODE_ENV=production 运行您的应用程序,而不是开发。通常,任何应该始终运行的配置,例如上面的所有代码,都不应该放在app.configure 回调中。我从来没有使用过app.configure,因为它基本上没用,但它的目的是用于开发和生产环境之间不同的东西。

    【讨论】:

    • 我列不列都无所谓。我还是不行。我只是列出它来检查这是否是问题。
    • 好的,再看一遍,我很确定我知道发生了什么。答案已更新。
    • 已删除,谢谢。该错误消失了,得到了一个全新的错误,但认为它仍然与查看引擎有关。
    猜你喜欢
    • 2014-06-29
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2021-03-21
    • 2017-10-04
    • 2022-12-18
    • 1970-01-01
    相关资源
    最近更新 更多