2013-07-24 126 views
0

我有一个应用程序,我已经写在Node JS中,尽可能只使用本地主机,并且需要将其部署到Heroku上。错误H12将Express JS应用程序部署到Heroku

主要server.js文件可以在这里看到:http://pastebin.com/6VGk8ESz 要了解我们如何挂钩的路由鉴于此LIB文件:http://pastebin.com/uirpUFkq

问题是应用本地工作正常,但当我把它上传到我的Heroku总是得到以下回应:

at =错误代码= H12 desc =“请求超时”方法= GET路径=/host = careboxnode.herokuapp.com fwd =“64.129.24.13”dyno = web.1 connect = 8ms服务= 30002毫秒状态= 503字节= 0

我把console.log()语句在我的代码它似乎运行没有错误。问题是,res.render和res.send都不会出于某种原因而将任何内容发送回Heroku进行投放,从而导致页面超时。我没有得到任何正式的错误或例外,所有的文件都被正常读取。显示内容似乎不起作用。

这是一个相当奇怪的问题,所以我非常感谢任何人有任何帮助,感谢一堆! :)

回答

0

我可以看到什么看起来像两个错误。一个问题很可能是你使用本地主机和一个静态端口来访问数据库。在Heroku上,您将通过环境变量获取数据库URL。

更重要的是,你需要从Heroku的网络端口,以及,如下所示:https://devcenter.heroku.com/articles/nodejs#write-your-app

+0

良好的渔获物,不幸的是这些似乎并没有解决问题。我正在使用process.env.PORT作为Web端口,并修复了MongoDB。仍然收到错误H12。有趣的是索引页根本不使用MongoDB,它仍然不会加载。 不过,谢谢你的帮助。你以后肯定会遇到一个潜在的问题。 :) – Fallout2man

+0

在执行'heroku restart'之前,在另一个窗口中执行'heroku logs -t'。你是否看到'Express server listen on port 63522'的console.log消息 – dankohn

+0

原来你是对的,我刚开始并没有意识到你有多么正确。 我不得不完全重写我的MongoDB代码来使用Db.Connect,而不是仅仅做新的数据库('名称',新的服务器(等));因为这是我发现将完整数据库URL传递给Mongo Client的唯一方式。 将所有代码重新分解并确保异步方法具有适当的回调后,我的应用程序终于起作用了! 谢谢! :) – Fallout2man

相关问题