I have got a configuration file called dev.js
which contains an object that has a key called dbURL
which holds database url for MongoDB. It looks like this exactly.
export const config = {
dbURL: 'mongodb+srv://...'
}
And I have got another file called db.js
where I import the above dev.js
file and use the dbURL
key in order to connect to the database.
import { connect as _connect } from 'mongoose';
import {config} from '../config/dev';
const connect = (url = config.dbURL, opts = {}) => {
return _connect(
url,
{}, err => {
if (err) throw err;
console.log('Connected to MongoDB!')
}
)
}
export default connect;
The problem is if I tried to change the dbURL
's value in the dev.js
file to be process.env.DEV_DB
for example.
export const config = {
dbURL: process.env.DEV_DB
}
The .env
file looks like this
DEV_DB = "mongodb+srv://...."
It actually returns undefined
, although I tried to console.log(process.env.DEV_DB)
in the db.js
file and it printed the database url normally.
import { connect as _connect } from 'mongoose';
import {config} from '../config/dev';
const connect = (url = config.dbURL, opts = {}) => {
console.log(config) //logs {dbURL: undefined}
console.log(process.env.DEV_DB) //logs the database url normally
return _connect(
url,
{}, err => {
if (err) throw err;
console.log('Connected to MongoDB!')
}
)
}
export default connect;
When I tried to log the process.env.DEV_DB
in the dev.js
file, it logged undefined
as well.
Note: The dotenv
is imported at the top of the application, and the .env
is in the root file.
Have you imported dotenv at the top of your dev.js file as well? That solved it for me when I tried it locally.