首页 > 解决方案 > 使用 heroku 部署小型 nodejs 应用程序时出错

问题描述

我有一个 API 服务器,我想每分钟更新一次数据库,所以我创建了一个小脚本(另一个项目),所以他每分钟都会向我的主服务器发送一个请求,我做了一个路由来处理请求

const request = require("request");
setInterval( async()=> { 
   request({
     url :"https://serverdomainname/route",
     json:true
},(err,res,body)=>{
    console.log("sent")
})}, 60000);

我打字时正在开发中

节点应用程序一切正常,但是当我在 Heroku 中部署时,它在第一秒内就可以正常工作,但随后出现此错误

{

2021-10-23T16:09:52.503866+00:00 app[web.1]: > updateserver@1.0.0 start /app

2021-10-23T16:09:52.503866+00:00 app[web.1]: > node app.js

2021-10-23T16:09:52.503867+00:00 app[web.1]:

2021-10-23T16:10:51.663197+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

2021-10-23T16:10:51.709745+00:00 heroku[web.1]: Stopping process with SIGKILL

2021-10-23T16:10:51.846193+00:00 heroku[web.1]: Process exited with status 137

2021-10-23T16:10:51.926528+00:00 heroku[web.1]: State changed from starting to crashed

}

那些来自 Heroku 服务器的服务器日志

有解决方案还是我可以从主服务器上解决?

标签: node.jsexpressherokudeploymentweb-deployment

解决方案


Heroku 希望在端口上运行您的应用程序,您可以分配端口,甚至不需要像

const request = require("request");
setInterval( async()=> { 
   request({
     url :"https://serverdomainname/route",
     json:true
},(err,res,body)=>{
    console.log("sent")
})}, 60000);

// to run on Heroku
require('http').createServer((req, res) => res.end()).listen(process.env.PORT || 3000);

或者https://stackoverflow.com/a/40621709/3461055也可以帮助你


推荐阅读