Estoy tratando de implementar el backend de mi nodo en heroku, pero me encuentro con el error de que: -
Cannot connect to database The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.Todo funciona bien en el modo de desarrollo, mi base de datos mongo atlas se está conectando y todas las rutas funcionan bien, pero cuando cambié a producción, heroku no puede conectarse a mi base de datos. Mi código de servidor es: -
require("dotenv").config(); const express = require("express"); const mongoose = require("mongoose"); const cors = require("cors"); const fileUpload = require("express-fileupload"); const cookieParser = require("cookie-parser"); const users = require("./routers/users"); const category = require("./routers/category"); const products = require("./routers/product"); const uploadImages = require("./routers/upload"); const app = express(); app.use(express.json()); app.use(cookieParser()); app.use(cors()); app.use( fileUpload({ useTempFiles: true, }) ); // connecting to MongoDB const mongoURL = process.env.MONGO_URL; mongoose .connect(mongoURL, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, }) .then(() => console.log("DataBase has been connected !")) .catch((err) => console.log("Cannot connect to database", err.message)); // routes app.use("/users", users); app.use("/category", category); app.use("/images", uploadImages); app.use("/products", products); const port = process.env.PORT || 5000; app.listen(port, () => { console.log(`I am listening at ${port}`); });Había agregado mi archivo .env que incluye mi cadena de URL de conexión mongo, en mi archivo .gitignore . Debido a esto, Heroku no pudo leer mi cadena de conexión y los registros daban la URL undefined . Acabo de eliminar las líneas en .gitignore que ignoraban el archivo .env y Heroku pudo conectarse a mi base de datos mongo atlas