猫鼬.env返回未定义

时间:2020-03-30 15:09:50

标签: javascript node.js mongoose dotenv

我正在使用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"

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

2 个答案:

答案 0 :(得分:2)

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

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

文档说明: https://www.npmjs.com/package/dotenv

答案 1 :(得分:1)

您还没有将模板文字用于猫鼬连接。

尝试一下:

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

为您的Javascript代码段获取实际的.env变量。