【问题标题】:Mongoose .env returning undefinedMongoose .env 返回未定义
【发布时间】:2020-07-11 00:01:42
【问题描述】:

我正在使用 MEVN 堆栈设置我的数据库连接,但出现以下错误;

The `uri` parameter to `openUri()` must be a string, got "undefined"

如果我尝试控制台日志 process.env.DATABASE_URL 它只会返回未定义。我做错了什么这是我的代码;

index.js

import dotenv from 'dotenv';
import Express from 'express';
import Mongoose from 'mongoose';

dotenv.config();

const app = Express();

Mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true });

app.listen(3000, () => {
    // console.log(process.env.DATABASE_URL);
    console.log('server started on port 3000');
});

.env

DATABASE_URL="mongodb+srv://reece:<password>@mevn-tutorial-cluster-egjs6.mongodb.net/auth?retryWrites=true&w=majority"

出于明显的原因,我删除了密码

【问题讨论】:

  • 当你做console.log(process.env.DATABASE_URL);时你会得到什么?
  • @AnkitAgarwal 未定义

标签: javascript node.js mongoose dotenv


【解决方案1】:

您必须在应用程序的根目录中创建一个 .env 文件。 在 .env 文件中,您应该使用等号分隔键值。 例如:

secret=foo
DATABASE_URL=bar:pwd@localhost.com

如文档所述: https://www.npmjs.com/package/dotenv

【讨论】:

  • 是的,原来我的服务器文件夹中有它。它现在在根目录中并且可以正常工作,谢谢
【解决方案2】:

您还没有为猫鼬连接使用模板文字。

试试这个:

Mongoose.connect(${process.env.DATABASE_URL}, { useNewUrlParser: true });

为您的 Javascript sn-p 获取实际的 .env 变量。

【讨论】:

    猜你喜欢
    • 2020-08-24
    • 2017-12-14
    • 2020-10-06
    • 2020-01-18
    • 2011-12-08
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多