【问题标题】:How to load mongodb URI from .env file on heroku?如何从heroku上的.env文件加载mongodb URI?
【发布时间】:2020-01-24 17:32:27
【问题描述】:

我是 MERN 堆栈的初学者,我将我的 nodejs 应用程序部署到 heroku,但是当我通过环境变量提供 mongodb uri 时,该应用程序无法连接到 mongodb 地图集,并且数据库中的数据不会加载。它工作正常当我通过变量直接给出 uri 时。此外,当在本地运行时,应用程序使用环境变量连接到 atlas 时没有任何问题。知道为什么它不能在 heroku 上工作以及如何修复它吗?

server.js

const express = require('express'); //nodejs framework for creating web apps
const cors = require('cors');
const mongoose = require('mongoose');
const path = require('path');

require('dotenv').config(); //for setting environment variables on server

const app = express(); //creating the app

//Serve static assets if in production
if(process.env.NODE_ENV ==='production'){
    //Set static folder
    app.use(express.static('client/build'));

    app.get('*',(req, res) => {
        res.sendFile(path.resolve(__dirname,'client','build','index.html'));
    });
}
////////////////////////////////////////
const port = process.env.PORT || 5000;

app.use(cors()); //for cross origin resource sharing ie.cross domain requests
app.use(express.json()); //for handling json data

const uri = process.env.ATLAS_URI;
//its works fine when I give it as below
//const uri="mongodb+srv://jose:<password>@exercisecluster-rmqkg.gcp.mongodb.net/test?retryWrites=true&w=majority"


mongoose.connect(uri,{ useNewUrlParser: true, useCreateIndex: true ,useUnifiedTopology: true });
const connection = mongoose.connection;
connection.once('open',() => {
    console.log('Database connection established successfully');
})


const exercisesRouter = require('./routes/exercises');
const usersRouter = require('./routes/users');

//executes the files in the second argument when user enters the url 'rooturl/firstargument'
app.use('/exercises',exercisesRouter);
app.use('/users',usersRouter);

app.listen(port,() => {
    console.log(`Server is running on port:${port}`);
});

【问题讨论】:

标签: node.js reactjs mongodb express heroku


【解决方案1】:

在您的 heroku 项目中,您需要设置一个环境变量 ATLAS_URI 并输入您的 mongodb uri 的值。

为此,请转到您的 heroku 应用程序中的设置选项卡,然后单击显示配置变量,然后输入您的 mongo uri 的键和值。

希望对你有帮助

【讨论】:

  • 谢谢,在heroku中设置env变量后它工作正常
  • 太好了,很高兴听到
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 2020-06-19
  • 2021-09-17
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多