【问题标题】:Heroku Node.js App Works Locally but not when deployedHeroku Node.js 应用程序在本地工作,但在部署时不工作
【发布时间】:2015-07-24 07:31:06
【问题描述】:

我有一个运行良好的 MEAN Stack Heroku 应用程序。但后来我添加了一个新功能:

app.get('/userCreated/:id', function(req, res) {

if (req.cookies.userCreated == req.params.id) { 
    res.send(true);
}
else {
    res.send(false);
}

});

现在我在加载应用程序时收到 503(服务不可用)错误。有人知道为什么会这样吗?

我正在使用 Angular 和 $http.get() 来访问这个 Express.js 函数...

编辑:这是我正在调用服务器的客户端 Angular 代码:

var deferred = $q.defer();
function thisUserCreated(id) {
$http.get('/userCreated/' + id).success(function(data) {
deferred.resolve(data);
// returns boolean indicating whether the current user has the proper cookie
// saying this user created the given group
});
return deferred.promise;
};

【问题讨论】:

  • bn 偶然或它是代码的一部分
  • 糟糕。接得好。但这不是问题。还有其他想法吗?
  • 你在服务器上使用的port,在部署服务器上可以免费使用吗
  • 同样,这个函数在 localhost 上表现正常,但在部署到 heroku 时会起作用
  • @Tushar 我相信。在添加此功能之前,此应用在 Heroku 上部署时运行正常

标签: angularjs node.js mongodb heroku express


【解决方案1】:

该代码块中没有任何东西天生就被破坏了。

只需检查日志,看看是什么给了你错误:

heroku logs --tail

【讨论】:

  • 我已经用发出 http 请求的客户端代码更新了我的问题。也许那里有问题?
  • 如果您在服务器上收到 503,您真的应该检查服务器日志以了解原因。
【解决方案2】:

嗯,我确实想通了。原来我没有在 package.json 中列出所有依赖项。

这里的教训:安装节点包时总是使用--save

否则你会过得很糟糕。

【讨论】:

    【解决方案3】:

    尝试重新编译 (ng build -prod) Angular 端并再次部署。还可以观看MEAN Stack Front To Back [Part 10] - App Deployment to Heroku

    【讨论】:

      【解决方案4】:

      我使用 Node/Heroku 退出状态 1 和状态 H10 等以多种不同形式处理了这个问题。我搜索并尝试了从清除节点缓存到通过 git 回滚所有内容并重新开始的所有方法。好像我的 node_modules 一直在某个地方更新,我会从出错到在本地运行,再到部署后崩溃。唯一有效的方法是在我的 .gitignore 文件中“不签入生成的目录”,如果在这种情况下适用于其他人,这似乎是一个愚蠢而明显的解决方案。可以在这里找到不同的故障排除步骤https://devcenter.heroku.com/articles/troubleshooting-node-deploys

      【讨论】:

        猜你喜欢
        • 2020-12-08
        • 1970-01-01
        • 2012-08-15
        • 2014-11-02
        • 2014-08-25
        • 1970-01-01
        • 1970-01-01
        • 2018-07-12
        • 2019-06-18
        相关资源
        最近更新 更多