【问题标题】:Application error heroku deploy from github node.js从 github node.js 部署应用程序错误 heroku
【发布时间】:2021-05-10 09:43:44
【问题描述】:

Heroku 从 github 存储库部署时显示应用程序错误,这里是 package.json

{
  "name": "tinder-backend",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "mongoose": "^5.11.15"
  }
}

但它总是在 heroku 上显示应用程序错误我添加了 gitignore 以排除 node_modules 这是我的代码(不是我的,而是从 youtube 学习 express --> server.js):

import express from 'express'
import mongoose from 'mongoose'

import Cors from 'cors'
import Cards from './dbCards.js'

// App Config
const app = express();
const port = process.env.port || 8001

const connection_url = `mongodb://admin:<hidden>@cluster0-shard-00-00.7vrlv.mongodb.net:27017,cluster0-shard-00-01.7vrlv.mongodb.net:27017,cluster0-shard-00-02.7vrlv.mongodb.net:27017/<hidden>?ssl=true&replicaSet=atlas-p4781z-shard-0&authSource=admin&retryWrites=true&w=majority`
//Middlewares
app.use(express.json())
app.use(Cors())
//DB config
mongoose.connect(connection_url,{
    useNewUrlParser: true,
    useCreateIndex: true,
    useUnifiedTopology: true,
})
//api ENDPOINTS
app.get('/',(req,res)=>{
    res.status(200).send('Hello world')
});

app.post('/tinder/card',(req,res) => {
    const dbCard = req.body;
    Cards.create(dbCard,(err,data) => {
        if(err){
            res.status(500).send(err)
        }
        else{
            res.status(201).send(data)
        }

    })
});

app.get('/tinder/card',(req,res) => {
    const dbCard = req.body;
    Cards.find((err,data) => {
        if(err){
            res.status(500).send(err)
        }
        else{
            res.status(200).send(data)
        }

    })
});
//listener
app.listen(port,()=> console.log(`listening on localhost:${port}`));

这在本地机器上完美运行,初学者在这里任何帮助将不胜感激

这是我在活动中看到的日志:

-----> Building on the Heroku-20 stack
-----> Node.js app detected
       
-----> Creating runtime environment
       
       NPM_CONFIG_LOGLEVEL=error
       NODE_VERBOSE=false
       NODE_ENV=production
       NODE_MODULES_CACHE=true
       
-----> Installing binaries
       engines.node (package.json):  unspecified
       engines.npm (package.json):   unspecified (use default)
       
       Resolving node version 14.x...
       Downloading and installing node 14.15.4...
       Using default npm version: 6.14.10
       
-----> Restoring cache
       - node_modules
       
-----> Installing dependencies
       Installing node modules
       added 83 packages in 2.08s
       
-----> Build
       
-----> Caching build
       - node_modules
       
-----> Pruning devDependencies
       audited 83 packages in 1.059s
       
       2 packages are looking for funding
         run `npm fund` for details
       
       found 0 vulnerabilities
       
       
-----> Build succeeded!
-----> Discovering process types
       Procfile declares types     -> (none)
       Default types for buildpack -> web
-----> Compressing...
       Done: 34.2M
-----> Launching...
       Released v6

【问题讨论】:

  • 你能分享日志中的错误信息吗?
  • @ArunKumarMohan 我不使用 heroku cli,好的,我附上了
  • 只是好奇,为什么不呢?安装 Heroku CLI 后,您可以使用 heroku logs -t 跟踪日志。如果不想安装,可以从 Heroku 网络应用查看日志。

标签: node.js express github heroku


【解决方案1】:

我的错误是const port = process.env.port || 8001这一行,应该是process.env.PORT,端口大写,成功浪费了我的时间

【讨论】:

    【解决方案2】:

    如果您正确遵循 Haruko 网站上的 Heroku 部署指南,那么您必须确保已将 IP 地址作为白名单添加到您的 MongoDB 帐户。有时人们会遇到 IP 地址的问题,因为当您不将 IP 地址添加到 MongoDB 帐户时,Heroku 无法启动服务器。并确保您在项目根目录中添加了 Heroku procfile。

    【讨论】:

    • 0.0.0.0/0 是我在 mongodb 设置中的 ip
    • 如何添加heroku procfile
    • 只需要在你的项目根目录下创建一个名为 Procfile 的文件即可。然后将此内容应用到您创建的 Procfile (web: node "YOUR INDEX PAGE NAME") 中,例如 "web: node app.js"。最后你应该在你的 Package.json 文件中设置引擎。 "engines": { "node": "你当前的节点版本" }
    • 好的,不客气。尝试后让我知道你发生了什么。
    • 是的,两者都是一样的。你也可以在你的 Procfile 中使用 npm 命令。
    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 2021-02-12
    • 2017-02-04
    • 2016-02-10
    • 2019-12-05
    • 2016-09-10
    • 2017-02-09
    • 1970-01-01
    相关资源
    最近更新 更多