MongoDB环境变量配置报错,如何正确关联.env与server.js文件
问题原因
你对dotenv的API调用错误,parse()方法是用于直接解析dotenv格式的字符串内容,需要传入对应的字符串参数,不能直接用来加载本地.env文件。你当前的报错就是因为调用parse()时未传入要解析的字符串参数,方法内部接收到的源内容为undefined,调用toString方法时触发了类型错误。加载.env文件需要调用config()方法。
解决步骤
- 首先确认已安装dotenv依赖,未安装的话在项目根目录执行:
npm install dotenv --save - 将server.js中dotenv的调用代码替换为:
if (process.env.NODE_ENV !== 'production') { require('dotenv').config() }
- 确认你的
.env文件存放在项目根目录(与package.json、server.js同级),如果存放路径自定义,需要在config中传入path参数指定路径:
require('dotenv').config({ path: './自定义路径/.env' })
验证方式
可以在mongoose.connect代码前加一行打印代码,确认环境变量加载正常:console.log('数据库地址:', process.env.DATABASE_URL)
启动服务后如果能正确打印mongodb://localhost/mybary,说明配置生效。
内容的提问来源于stack exchange,提问作者CoderTang
相关产品推荐
相关产品推荐

