process.env 变量 returns 未在特定文件中定义
process.env variable returns undefined from a specific file
我有一个名为 dev.js
的配置文件,其中包含一个对象,该对象具有一个名为 dbURL
的键,该键包含 MongoDB 的数据库 url。完全是这个样子。
export const config = {
dbURL: 'mongodb+srv://...'
}
我有另一个名为 db.js
的文件,我在其中导入上面的 dev.js
文件并使用 dbURL
键连接到数据库。
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;
问题是,如果我尝试将 dev.js
文件中 dbURL
的值更改为 process.env.DEV_DB
,例如。
export const config = {
dbURL: process.env.DEV_DB
}
.env
文件看起来像这样
DEV_DB = "mongodb+srv://...."
它实际上 returns undefined
,尽管我尝试在 db.js
文件中 console.log(process.env.DEV_DB)
并且它正常打印数据库 url。
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;
当我试图在 dev.js
文件中记录 process.env.DEV_DB
时,它也记录了 undefined
。
注意:dotenv
在应用程序的顶部导入,.env
在根文件中。
您是否也在 dev.js 文件的顶部导入了 dotenv?当我在本地尝试时,这为我解决了。
我有一个名为 dev.js
的配置文件,其中包含一个对象,该对象具有一个名为 dbURL
的键,该键包含 MongoDB 的数据库 url。完全是这个样子。
export const config = {
dbURL: 'mongodb+srv://...'
}
我有另一个名为 db.js
的文件,我在其中导入上面的 dev.js
文件并使用 dbURL
键连接到数据库。
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;
问题是,如果我尝试将 dev.js
文件中 dbURL
的值更改为 process.env.DEV_DB
,例如。
export const config = {
dbURL: process.env.DEV_DB
}
.env
文件看起来像这样
DEV_DB = "mongodb+srv://...."
它实际上 returns undefined
,尽管我尝试在 db.js
文件中 console.log(process.env.DEV_DB)
并且它正常打印数据库 url。
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;
当我试图在 dev.js
文件中记录 process.env.DEV_DB
时,它也记录了 undefined
。
注意:dotenv
在应用程序的顶部导入,.env
在根文件中。
您是否也在 dev.js 文件的顶部导入了 dotenv?当我在本地尝试时,这为我解决了。