当前位置: 首页 > 知识库问答 >
问题:

Heroku部署与MongoDb不兼容

齐博厚
2023-03-14

我用ReactJS、NodeJS、MongoDb和Express创建了一个演示应用。试图部署在heroku上。如果我不使用mongo,它工作得很好,但在我介绍mongo db之后。我收到错误,无法收到/。我正在使用mongodb atlas。我需要heroku插件才能使用数据库吗?

服务器js

// Import dependencies
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const path = require('path');
const MongoClient = require("mongodb").MongoClient;
const ObjectId = require("mongodb").ObjectID;
const mongodb = require('mongodb');
const fs = require('fs');
const moment = require("moment");

require('dotenv').config();

const CONNECTION_URL = process.env.MONGODB_URI || "mongodb+srv://<username>:<password>@cluster0.xzzno.mongodb.net/<dbname>?retryWrites=true&w=majority";
const DATABASE_NAME = "DBNAME";
const port = process.env.PORT || 5000;


const app = express();

// Set our backend port to be either an environment variable or port 5000

// This application level middleware prints incoming requests to the servers console, useful to see incoming requests
app.use((req, res, next) => {
    console.log(`Request_Endpoint: ${req.method} ${req.url}`);
    next();
});

// Configure the bodyParser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));

// Configure the CORs middleware
app.use(cors());

app.get("/test/", (request, response) => {
    response.send({"name":"Hello Test!!!"});
});





var database, userSignUp;

app.listen(port, () => {
    MongoClient.connect(CONNECTION_URL, { useNewUrlParser: true }, (error, client) => {
        if(error) {
            throw error;
        }
        database = client.db(DATABASE_NAME);
        userSignUp = database.collection("UserData");
        
       
        console.log("Connected to `" + DATABASE_NAME + "`!");
       
    
    });
})

包裹json

{
  "name": "testproject",
  "version": "1.0.0",
  "description": "Learning Deployment",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "client": "cd client && npm start",
    "server": "nodemon server.js",
    "dev": "concurrently --kill-others-on-fail \"npm run client\" \"npm run server\"",
    "client:build": "cd client && npm run build"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Username/TestProject.git"
  },
  "author": "Ankita Jaiswal",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/Username/TestProject/issues"
  },
  "homepage": "https://github.com/Username/TestProject#readme",
  "dependencies": {
    "body-parser": "^1.19.0",
    "concurrently": "^5.3.0",
    "cors": "^2.8.5",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "nodemon": "^2.0.7",
    "moment": "^2.29.1",
    "mongodb": "^3.6.3",
    "mongoose": "^5.11.8"
  }
}

Propfile文件

web: npm运行开发

也尝试过网络:npm开始。

共有1个答案

琴元凯
2023-03-14

就凭我有限的经验,我也遇到过同样的问题,结果我忘记在Heroku上配置环境变量,所以我的MONGO_URI没有定义。如果不是这样,您可以使用Heroku CLI,从项目的根目录运行Heroku logs--tail,或许可以看到更多关于正在发生的事情。

 类似资料:
  • 我看了以前所有关于它的帖子,但仍然无法纠正。我在Heroku创建的计算机目录中添加了requirements.txt和Procfile。Procfile读作“web:python Chat server.py”。还在同一个目录中添加了runtime.txt,上面写着“python-3.6.2”。但是,它在命令提示符中再次出现相同的错误。我该怎么解决这个?这是整个错误消息: “C:\users\as

  • 推荐先去了解下 在 Heroku 里部署 node.js 应用的文档。 首先,我们需要告诉 Heroku 安装项目的开发依赖包 devDependencies (以便能在 Heroku 环境下运行 npm run build): heroku config:set NPM_CONFIG_PRODUCTION=false 同时,我们想让应用以 生产模式 运行,绑定的主机IP为 0.0.0.0: he

  • 下面是我在GitHub上的webapp代码:https://github.com/krzysztofskul/bookmarks-app.git,当我自动或手动部署它时,我会得到应用程序成功部署的信息,但是在heroku https://krzysztofskul--bookmarks-app.herokuapp.com上刷新页面时显示应用程序错误。我找不到原因,所以请你帮忙。

  • 问题内容: 我正在尝试将Flask应用程序部署到Heroku,但是在推送代码时出现错误 我不确定该怎么做,我尝试将端口从5000更改为33507,但无济于事。我的Procfile看起来像这样: main.py 是启动服务器的主要Flask文件。 问题答案: 在Heroku托管的Flask应用中,我使用以下代码启动服务器: 在本地开发时,它将使用端口5000,在生产环境中,Heroku将设置环境变量

  • 目标 将 https://github.com/Ricardo-Li/node-practice-2 (这个项目已经被删了。参照 https://github.com/alsotang/node-lessons/tree/master/lesson3 的代码自己操作一下吧。)这个项目部署上 heroku,成为一个线上项目 我部署的在这里 http://serene-falls-9294.herok

  • 所以,我正在尝试部署一个。Heroku上的jar文件。当我尝试部署它时,会出现以下错误: 我不知道发生了什么,我下载了java插件,我下载了Heroku CLI插件。Idk怎么做,下面是部署命令。 heroku部署:jar C:\Users\My Name\Desktop\Tester Bot2\myfile。jar——应用程序mybotapp