2016-07-19 1 views
0

Я видел во многих местах, что для использования внешнего Mongodb в приложениях Meteor вам следует использовать переменную среды MONGO_URL. Тем не менее, я создаю приложение для работы как веб-приложения, так и мобильного приложения (путем создания apk).Использование внешнего mongodb в мобильной сборке Meteor

Проблема в том, что когда я начинаю метеор как MONGO_URL='mongodb://user:[email protected]:9999/db' meteor, он хорошо работает на моем компьютере. Но это невозможно (я пока не нашел способа сделать это), чтобы сделать это на мобильном телефоне.

Итак, кто-нибудь знает, как я могу использовать внешний mongodb в мобильных приложениях?

Спасибо!

ответ

1

Мне кажется, что вы смущены тем, как работает Meteor, и в целом это архитектура клиент-сервер.

Только ваш сервер имеет доступ к вашей базе данных (будь то на том же компьютере или у стороннего поставщика), чтобы вы контролировали именно то, к чему имеет доступ ваш клиент.

Под «Клиентом» мы подразумеваем, что ваш посетитель использует для доступа к вашему приложению, будь то веб-приложение через браузер или мобильное приложение через оболочку Cordova.

Поэтому вашему мобильному приложению нужно знать только URL-адрес сервера, к которому он должен подключиться. Это определяется опцией --server, когда вы делаете свой meteor build.

Тогда ваш сервер должен знать, как получить доступ к внешнему MongoDB. Это переменная среды MONGO_URL. В процессе производства вы должны установить эту переменную на своем сервере. Каждый поставщик предлагает другой способ настройки этих переменных окружения, большую часть времени имеется панель управления графикой.

Обратите внимание, что как работает Meteor, вы можете использовать тот же сервер для одновременного поддержки как своего веб-приложения, так и мобильного приложения.

Наконец, вы также можете проверить на мобильных телефонах, используя meteor run android, а не только meteor (или с ios вместо Android, но вам нужен Mac). Конечно, вы все равно можете указать переменную MONGO_URL в CLI при тестировании, точно так же, как вы это сделали при тестировании в браузере.

+0

Спасибо, это сработало! – lucasmonteiro001

0

Для мобильных (cordova) приложений метеоритов это приложение представляет собой просто веб-представление с возможностью доступа к собственным функциям устройства (камера, Bluetooth ...). Поскольку приложение в основном представляет собой веб-представление, базовый mongodb, связанный с ним, тот же. Если вы хотите, чтобы хранилище на мобильных устройствах предназначалось для вашего устройства, обратите внимание на GroundDB

Для вашей ситуации, если у вас есть что-то вроде вашего мобильного приложения, возникают проблемы с подключением к вашему серверу, что в конечном итоге не позволяет извлекать данные из mongoDB. Убедитесь, что при создании мобильного приложения вы задали сервер «-mobile-server». Также, если вы используете его локально, убедитесь, что ваше мобильное устройство находится в той же сети, что и ваш компьютер, и любые брандмауэры, которые могут не разрешать подключения, отключены.

+0

Пожалуйста, исправьте меня, если я ошибаюсь. Должен ли этот -mobile-сервер быть localhost: 3000, а затем я указываю, где мой монгод? Я использую GroundDB, и он работает хорошо, проблема заключается в подключении мобильного приложения к внешнему mongodb, который я размещал на mlab. – lucasmonteiro001