javascript - 将 MongoDB (mongoose) uri 移动到 .env 文件时出错
问题描述
我正在为我的网络应用程序使用 MERN 堆栈。我的数据库部署到 MongoDB Atlas。我的代码运行良好,但是在我将所有密码和端口号移至 .env 文件之后。我收到以下错误:
这是我的代码:
const express = require("express");
const mongoose = require('mongoose');
const dotenv = require('dotenv').config();
const app = express();
const port = process.env.PORT;
const mydbURL = process.env.DB_URL;
mongoose.connect(mydbURL, {useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true});
在 .env 文件中:
PORT = 5000
DB_URL = mongodb+srv://username:password@name-of-cluster.aezwt.mongodb.net/name-of-db?retryWrites=true&w=majority
我收到以下错误:
(节点:12580)UnhandledPromiseRejectionWarning:MongooseError:
uri
参数openUri()
必须是字符串,得到“未定义”。确保mongoose.connect()
or的第一个参数mongoose.createConnection()
是一个字符串。
(节点:12580)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志
--unhandled-rejections=strict
(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝 ID:1)(节点:12580)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。
我的问题:
上述错误的可能解决方法是什么?
解决方案
试试这个对我有用
dotenv.config({ path: path.join(__dirname, 'your env file path') });
推荐阅读
- c++ - 我可以使用 unique_lock 锁定互斥锁并安全地返回变量吗?我必须先复制它吗?
- java - 错误:无法找到或加载主类 org.apache.maven.wrapper.MavenWrapperMain
- python - 使用 Docker 卷使用 VSCode 调试 Docker 容器内的 Django 后端
- data-structures - 为什么树搜索比图搜索更昂贵?
- sql - 合并来自不同表的两个不同字段的 MS Access SQL 查询显示参考 ID 而不是实际值
- django - ImportError:没有名为skeleton.settings的模块
- c# - 实体框架查询中不区分大小写的字符串比较
- sbt - 是否可以在不禁用 sbt 中的 publishLocal 的情况下禁用发布?
- animation - 滚动视图中元素的 SwiftUI 动画不起作用?Xcode GM 更新
- reactjs - 我想将主要反应应用程序的路由拆分为多个包。怎么做?