在Heroku上成功部署node.js缺少什么

问题描述

我花了很多时间来做与heroku手册中关于node.js部署的完全相同的操作。我正在使用nedb作为数据存储和node.js14.x。是其中一个问题吗?没有进一步的计划。

heroku日志

2020-11-09T07:11:42.803302+00:00 app[web.1]: Warning: connect.session() MemoryStore is not
2020-11-09T07:11:42.803322+00:00 app[web.1]: designed for a production environment,as it will leak
2020-11-09T07:11:42.803323+00:00 app[web.1]: memory,and will not scale past a single process.
2020-11-09T07:11:42.812099+00:00 app[web.1]: Server running at http://localhost:49728/
2020-11-09T07:12:40.832978+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process Failed to bind to $PORT within 60 seconds of launch
2020-11-09T07:12:40.849869+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-11-09T07:12:40.929805+00:00 heroku[web.1]: Process exited with status 137
2020-11-09T07:12:40.964808+00:00 heroku[web.1]: State changed from starting to crashed

procfile

"scripts": {
  "start": "node app.js"
}

package.json

{
  "name": "test","version": "1.0.0","description": "Demo","main": "app.js","scripts": {
    "start": "node app.js",},"type": "module","engines": {
    "node": "14.x"
  },"dependencies": {
    "body-parser": "^1.19.0","express": "^4.17.1","express-session": "^1.17.1","hbs": "^2.9.0","method-override": "^3.0.0","nedb": "^1.8.0","nedb-promise": "^2.0.1","nedb-promises-ts": "0.0.1-4","prettier": "^2.1.2","typescript": "^4.0.3"
  },"devDependencies": {
    "@types/express": "^4.17.8","@types/nedb": "^1.8.11","@types/node": "^14.14.2","@typescript-eslint/eslint-plugin": "^4.4.1","@typescript-eslint/parser": "^4.4.1","eslint": "^7.11.0","eslint-config-prettier": "^6.13.0"
  }
}

app.js

import express from "express";

import { indexRoutes } from "./routes/indexRoutes.js";
...
const app = express();
...

app.use("/",indexRoutes);
...
const hostname = "localhost";
const port = process.env.PORT || 3000;
app.listen(port,hostname,() => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)