【问题标题】:Error R10 (Boot timeout) While deploying express app部署快速应用程序时出现错误 R10(启动超时)
【发布时间】:2021-04-09 13:06:17
【问题描述】:

好的,所以我已经浏览了 SO 和其他网站针对此问题的所有答案,但没有解决。 我已经开发了一个带有 ES6 语法的小型 express 应用程序,所以在将它部署到 heroku 之后,我收到了这个错误。

日志:

2021-04-09T12:14:14.688546+00:00 heroku[web.1]: Starting process with command `npm start`
2021-04-09T12:14:17.094473+00:00 app[web.1]: 
2021-04-09T12:14:17.094495+00:00 app[web.1]: > todo@1.0.0 start /app
2021-04-09T12:14:17.094496+00:00 app[web.1]: > npm run build && node ./build/app.js
2021-04-09T12:14:17.094496+00:00 app[web.1]: 
2021-04-09T12:14:17.415529+00:00 app[web.1]: 
2021-04-09T12:14:17.415540+00:00 app[web.1]: > todo@1.0.0 build /app
2021-04-09T12:14:17.415541+00:00 app[web.1]: > npm run clean && npm run build-babel
2021-04-09T12:14:17.415541+00:00 app[web.1]: 
2021-04-09T12:14:17.774142+00:00 app[web.1]: 
2021-04-09T12:14:17.774147+00:00 app[web.1]: > todo@1.0.0 clean /app
2021-04-09T12:14:17.774148+00:00 app[web.1]: > rm -rf build && mkdir build
2021-04-09T12:14:17.774148+00:00 app[web.1]: 
2021-04-09T12:14:18.129225+00:00 app[web.1]: 
2021-04-09T12:14:18.129247+00:00 app[web.1]: > todo@1.0.0 build-babel /app
2021-04-09T12:14:18.129248+00:00 app[web.1]: > babel -d ./build ./src -s
2021-04-09T12:14:18.129248+00:00 app[web.1]: 
2021-04-09T12:14:19.523820+00:00 app[web.1]: Successfully compiled 10 files with Babel (1213ms).
2021-04-09T12:14:22.100639+00:00 app[web.1]: [INFO] Connected to DB
2021-04-09T12:15:14.832949+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2021-04-09T12:15:14.869178+00:00 heroku[web.1]: Stopping process with SIGKILL
2021-04-09T12:15:14.978950+00:00 heroku[web.1]: Process exited with status 137
2021-04-09T12:15:15.039050+00:00 heroku[web.1]: State changed from starting to crashed

这是Package.json文件中的脚本

 "scripts": {
    "clean": "rm -rf build && mkdir build",
    "build-babel": "babel -d ./build ./src -s",
    "build": "npm run clean && npm run build-babel",
    "start": "npm run build && node ./build/app.js",
  },

在本地运行 npm start 后,它会在 build/ 文件夹中创建 app.js 文件。现在根据日志,我可以连接到 mongdb,但应用程序没有监听 PORT。

我也在本地检查过,但没有成功。这是构建文件夹中构建的 app.js 文件。

"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _express = _interopRequireDefault(require("express"));

var _passport = _interopRequireDefault(require("passport"));

var _connectDb = _interopRequireDefault(require("./connectDb"));

var _routes = _interopRequireDefault(require("./constants/routes"));

var _cors = _interopRequireDefault(require("cors"));

var app = (0, _express["default"])();
app.use((0, _cors["default"])()); // Load dotenv file in devlopment

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config();
} // Middlewares


app.use(_express["default"].json());
(0, _connectDb["default"])(); // Initializing passport

require('./routes/authentication/passportConfig')(_passport["default"]); // TODO turn this into ES6 syntax


app.use(_passport["default"].initialize());
app.use(_passport["default"].session());
app.get('/', function (_req, res) {
  res.send("hello world");
}); // Routes

app.use('/auth', _routes["default"].AUTHENTICATION);

var _default = app;
exports["default"] = _default;
//# sourceMappingURL=app.js.map

如果我将它添加到 build/app.js 文件并运行 node ./build/app.js

app.listen(process.env.PORT || 5000, () => {
  console.log(`Live at ${process.env.PORT || 5000}`);
})

它有效。控制台语句被打印出来。 我对如何解决这个问题并将其部署到 heroku 感到震惊。

编辑:

我参考这篇文章将 ES6 JS 部署到 heroku How to deploy ES6 Nodejs & Express to Heroku 提前致谢。

正如答案 Answer 0 所建议的,我将时间增加到 120 秒,但仍然没有加载应用程序。

【问题讨论】:

    标签: javascript node.js express heroku


    【解决方案1】:

    您显然收到了 R10(启动超时)错误,因为该应用无法在 60 秒内绑定到 Heroku 的端口。

    尝试使用 Heroku 的 Boot Timeout Tool 增加启动时间限制:

    https://tools.heroku.support/limits/boot_timeout

    您可以在此支持页面上阅读更多内容:

    https://help.heroku.com/W5ETWBQB/why-is-my-app-crashing-with-an-r10-error

    【讨论】:

    • 是的,我做到了。我将它增加到 120 秒,但错误仍然存​​在。我猜问题不在于时机。如果您阅读了我提到的问题,app.listen 在构建后没有添加到 app.js 文件中
    猜你喜欢
    • 1970-01-01
    • 2019-09-07
    • 2019-01-29
    • 2019-06-01
    • 2018-10-13
    • 2014-01-13
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多