Как изменить localhost на MongoDB и Heroku host

#mongodb #react-native #heroku #localhost #expo

#mongodb #react-native #heroku #localhost #выставка

Вопрос:

итак, я заканчиваю сборку своего приложения с помощью mongodb express react native с expo, и я пытаюсь сменить локальный хост-сервер с портом 3000 на реальный хост-сервер с помощью horuko и mongodb.

  • я был собран и подключил MongoDB к heroku, как в документах, я перехожу в настройки в heroku и вставляю momngodb_uri, что-то вроде :
         mongodb srv://admin:admin@lior.rva16.mongodb.net/<dbname>?retryWrites=trueamp;w=majority
     
  • в моем индексе server.js я переключаюсь с местного на :
     const port = process.env.PORT;// here i dont really have port (i dont know what to put inside)
      mongoose
       .connect(process.env.MONGO_URI, {///this line is - 
      >mongodb srv://admin:admin@lior.rva16.mongodb.net/<dbname>?retryWrites=trueamp;w=majority
     useNewUrlParser: true,
     useUnifiedTopology: true,
    })
     

это мой env-файл:

    MONGO_URI=mongodb srv://admin:admin@lior.rva16.mongodb.net/<dbname>?retryWrites=trueamp;w=majority
   JWT_SECRET=LKDSLCX9IOZiJS9IAJ768
 
  1. на моей стороне клиента весь URL-адрес запроса выглядит так:
      await indexApi.post("/signout");
     
  2. и до сих пор я использовал NGROK для подключения и проверки моей базы данных, поэтому базовый URL-адрес до сих пор был:
       export default axios.create({
       baseURL: "http://cca1237fb2de.ngrok.io", //ngrok http 3000
       });
     

проблема:
я получаю ошибки, которые показывают все, что не может подключиться к URL-адресу, он не находит URL-адрес сервера.
(обратите внимание, что с localhost все работало правильно)

вопрос:

  1. как я могу подключить свое приложение к серверу heroku
  2. что такое мой новый baseUrl? (я пытался выполнить {process.env.MongoDB_Uri}, но тоже сбой …)
  3. большой вопрос: «как я могу заменить сервер с локального на реальный сервер в heroku на mongo»

лин https://github.com/roeigr7/LIOR

Ответ №1:

Лучший способ сделать это — иметь переменную среды, в которой хранится ваш производственный / промежуточный MONGO_URL. На вашем локальном компьютере вы можете использовать dotenv package для извлечения значений из .env файлов и переменных среды, которые вы устанавливаете при развертывании приложения heroku.

Local .env

 MONGO_URL=mymongourl
 

Вы можете установить переменные среды в своем приложении heroku, перейдя в Настройки> Параметры конфигурации. Там должна быть кнопка с именем Reveal Config Vars . Нажмите на это, и это даст вам интерфейс для добавления дополнительных переменных среды.

Код

 const dotenv = require('dotenv')
dotenv.config()

...other code

const mongoURL = process.env.MONGO_URL
 

Комментарии:

1. это именно то, что у меня есть… но подключиться не удается, он не находит его … он потерпел неудачу с ошибкой: ошибка запроса с кодом состояния 404]

2. У вас должен быть .env файл в вашем файле gitignore. Это никогда не должно быть зафиксировано. Вы также никогда не должны раскрывать свои переменные env в сообщении stackoverflow или в своем репозитории. Переместите procfile в корень вашего репозитория и сделайте ваш корневой package.json скриптом cd server amp;amp; node index.js . Измените веб-команду вашего procfile на npm run start, и это должно решить вашу проблему. Я думаю, что происходит то, что ваш сервер даже не запускается, потому что heroku не переходит в каталог сервера и не запускает его. Вы также должны использовать cli heroku для диагностики проблем.