Путаница в том, как установить переменную .env в node.js / express. - PullRequest
0 голосов
/ 05 февраля 2020

Итак, я пытался подключиться к своей базе данных MongoDB, и мне пришлось создать переменную process.env.MONGO_URI для хранения URI соединения, и я очень расстроился, потому что это не работало, когда я, казалось, был делать это правильно в соответствии с инструкциями моих учебных модулей, код ниже:

const mongoose = require('mongoose');
var MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true }); 

Выше не работал, несмотря на то, что сказал «решение», но когда я изменил код на это, он работал,

const mongoose = require('mongoose');
var MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
process.env.MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });

Мой главный вопрос о настройке process.env.VARIABLE, почему я должен установить CAPITALIZED часть в отдельной строке, а затем снова сбросить полный файл process.env.VARIABLE в отдельной строке? В моих учебных материалах в основном говорилось, что вы установили его, и затем вы можете «привязать» его к process.env, что кажется совершенно неправильным или есть несколько способов настройки process.env. переменные, может кто-нибудь дать мне лучшее объяснение, пожалуйста, спасибо, гении stackoverflow

Ответы [ 2 ]

1 голос
/ 23 марта 2020

В первом примере вы определяете var MONGO_URI, а затем используете process.env.MONGO_URI; это неверно, потому что вы должны использовать переменную, которую вы уже определили MONGO_URI, непосредственно внутри метода connect или использовать переменную из файла .env в каталоге root вашего проекта. Вы можете использовать один из следующих сценариев ios:

1) Локальная переменная Case: Добавьте var или const, как вы делали ранее, а затем присоедините его к методу connect mon goose:

const mongoose = require('mongoose');
var MONGO_URI='mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'
mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });

2) Использование .env File Case: Добавить строку подключения в качестве переменной в файле .env в каталоге root вашего проекта:

создайте файл .env, и он должен содержать следующее:

MONGO_URI = 'mongodb+srv://myUsername:myPassword@cluster0-7impo.mongodb.net/test?retryWrites=true&w=majority'

Затем вы можете включить эту переменную в метод подключения, но сначала вам нужно установить dotenv * 1042. * Пакет с помощью одной из следующих команд:

С npm: npm установить dotenv

С пряжей: пряжа добавить dotenv

Затем включите пакет dotenv в ваш основной файл проекта: require('dotenv').config();

Последний шаг - добавление переменной из файла .env в ваш метод connect, и конечный результат должен выглядеть следующим образом:

require('dotenv').config();
const mongoose = require('mongoose');
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });
0 голосов
/ 05 февраля 2020

Взгляните на модуль dotenv .

Вам необходимо создать файл .env в каталоге root вашего проекта.

...