Подключение к атласу mongodb и локальному хосту
24 просмотра
2 ответа
3 Репутация автора
Я развернул свой проект nodejs в Heroku и использовал URL-адрес кластера mongodb, но я также хочу работать на своей локальной машине и использовать локальный хост.
Я попытался написать этот код, когда он не подключается к кластеру, он должен подключаться к локальному хосту, но проблема в том, что URL-адрес атласа не возвращает «undefined», когда он не подключен. местный хозяин.
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
require('dotenv').config();
const mlabDB = `mongodb+srv://${process.env.MLAB_USERNAME}:${process.env.MLAB_PASSWORD}@todo-app-qhj7g.mongodb.net/test?retryWrites=true&w=majority`;
mongoose.connect(mlabDB || 'mongodb://localhost:27017/TodoApp', {useNewUrlParser: true})
.catch((e) => {
console.log(e);
});
module.exports = {mongoose};
Автор: shivanshuchourasia
Источник
Размещён: 25.07.2019 04:59
Ответы (2)
0 плюса
16 Репутация автора
Вы пытались соединить их отдельно? Насколько я понимаю, вы хотите соединить их обоих одновременно. Попробуй это:
mongoose.connect(mlabDB , {useNewUrlParser: true})
.catch((e) => {
console.log(e);
});
После того, как вы сделаете все необходимое с Atlas, сделайте все снова для своей базы данных. Да, вы должны соединить их отдельно и обработать.
mongoose.connect('mongodb://localhost:27017/TodoApp' , {useNewUrlParser: true})
.catch((e) => {
console.log(e);
});
Если вы хотите подключить собственную базу данных, если подключение к атласу невозможно. Используйте console.log, чтобы увидеть, что возвращает атлас, если соединение не установлено. И добавьте оператор if, чтобы проверить, установлено соединение или нет.
Автор: burakarslan Размещён: 25.07.2019 07:020 плюса
36 Репутация автора
Внутри кода есть строка:
mlabDB || 'mongodb://localhost:27017/TodoApp'
Переменная mlabDB
не возвращает undefined, потому что вы определяете mlabDB как:
const mlabDB = `mongodb+srv://${process.env.MLAB_USERNAME}...
В этом случае, если process.env.MLAB_USERNAME
не определено, строка вернет:
mongodb+srv://undefined
В ответ на ваш вопрос: «Как мне соединиться как с кластером атласа, так и с локальным хостом?»: Используйте троичный оператор JavaScript:
const mlabDB = process.env.MLAB_USERNAME ? `mongodb+srv://${process.env.MLAB_USERNAME}:${process.env.MLAB_PASSWORD}@todo-app-qhj7g.mongodb.net/test?retryWrites=true&w=majority` : ``;
Для получения дополнительной информации о Heroku Config Vars, смотрите здесь .
Для локального управления vars используйте пакет noten's dotenv.
Автор: Elisha Kramer Размещён: 26.07.2019 09:27Вопросы из категории :
- node.js Удалить пустые элементы из массива в Javascript
- node.js Как мне избежать строки для команды оболочки в узле?
- node.js Могу ли я использовать jQuery с Node.js?
- node.js Как отлаживать приложения Node.js?
- node.js Как автоматически перезагрузить файлы в Node.js?
- node.js Запись файлов в Node.js
- mongoose Как установить драйвер mongoose на nodejs?
- mongoose Mongoose Уникальный индекс не работает!
- mongoose Как разбить на страницы с помощью Mongoose в Node.js?
- mongoose Десятичное число / число с плавающей запятой в мангусте для node.js
- mongoose Как выполнить запрос массива идентификаторов в Mongoose?
- mongoose Как я могу ограничить количество возвращаемых товаров?
- mongodb-atlas Рекомендуемый способ подключения облачного литейного производства к атласу mongodb
- mongodb-atlas Поддерживает ли MongoDB Atlas REST API для базы данных и коллекции?
- mongodb-atlas Инструменты аналитики / отчетности Mongodb Atlas
- mongodb-atlas Создание файла DRDL для MongoDb Atlas для использования с MongoDb Bi Connector
- mongodb-atlas Подключение Mongodb Atlas из весенней загрузки
- mongodb-atlas Не удается подключиться к mongoDB с помощью Spring Data Reactive и Spring Boot 2.0