简单 Node.js Heroku 部署失败

Simple Node.js Heroku deployment fails

我有一个名为 index.js:

的简单网络服务器
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.get('/data', (req, res) => {
    res.send('Data')
  })

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

我添加了 Procfile:

web:node server.js

我在 package.js 中添加了引擎:

{
  "name": "server",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon ./index.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.3",
    "nodemon": "^2.0.15"
  },
  "engines": {
    "node": "16.13.1",
    "npm": "8.1.2"
  }
}

我的部署一直失败,我的 heroku logs --tail 如下:

2022-03-04T09:10:22.196622+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=sismographie-back.herokuapp.com request_id=13ad01a2-0ff4-469e-820e-d61a337014e0 fwd="92.184.123.97" dyno= connect= service= status=503 bytes= protocol=https
2022-03-04T09:10:22.764644+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=sismographie-back.herokuapp.com request_id=09b110c3-0b16-45c0-8c02-02c77a7907c0 fwd="92.184.123.97" dyno= connect= service= status=503 bytes= protocol=http

如果这很重要,我正在使用 /Deploy > Deploy Branch 内置功能。

发生了什么事?

谢谢。

你不能使用 3000 作为默认端口 heroku.You 应该使用 heroku 的 port.The 问题基本上是由于端口引起的。

为了它的工作改变你的代码,比如 -

app.listen(process.env.PORT || port, () => {
console.log(`Example app listening on port ${port}`)
});

现在 heroku 将根据他们的服务器选择一个随机端口,如果他们无法获取任何端口,您的端口将优先于它。