Mongolab подключается к Heroku с помощью PencilBlue

У меня небольшая проблема, и я не знаю, с чего начать: у меня ошибка приложения, и я думаю, что моя база данных MongoLab не подключается правильно.

Вот ссылка на геройку w2w.

В приложении произошла ошибка, и ваша страница не может быть обработана. Пожалуйста, попробуйте снова через пару минут.

Если вы являетесь владельцем приложения, проверьте подробности в своих журналах.

А вот мой файл config.json:

{
"siteName": "PencilBlue Heroku and MongoDB Demo",
"siteRoot": "http://w2w.herokuapp.com",
"siteIP": "w2w.herokuapp.com",
"log_level": "info",
"db": {
    "type":"mongo",
    "servers": [
    "mongodb://hercules:MYPASSWORD@ds063330.mongolab.com:63330/pencilbluedb"
    ],
    "name": "pencilbluedb",
    "authentication": {
        "un": "hercules",
        "pw": "MYPASSWORD",
    },
    "writeConern": 1
},
"cache": {
    "fake": true,
    "host": "localhost",
    "port": 6379
},
"settings": {
    "use_memory": true,
    "use_cache": false
},
"templates": {
    "use_memory": true,
    "use_cache": false
},
"plugins": {
    "caching": {
        "use_memory": true,
        "use_cache": false
    }
}
} 

Я понятия не имею, почему он не загружается. Я следовал инструкциям здесь: ссылка Pencilblue, единственное отличие состоит в том, что я пытаюсь подключиться к MongoLab, и они предлагают MongoHQ (который уже был изменен на "compose").

Любая помощь будет оценена.

4 ответа

Похоже, что инструкции PencilBlue не содержат учетные данные db как часть строки подключения mongodb. Попробуйте оставить их вне строки подключения и посмотрите, решит ли это проблему. Просто убедитесь, что вы указали учетные данные в поле "аутентификация", что, по-видимому, вы уже делаете.

Похоже, вы определяете имя вашей БД дважды, один раз в URL и один раз в атрибуте "name". Удалите имя БД из URL. например

MongoDB: // Геракла:MYPASSWORD@ds063330.mongolab.com:63330/

вместо

MongoDB: // Геракла:MYPASSWORD@ds063330.mongolab.com:63330/pencilbluedb

И карандаш-синий должен добавить имя БД при подключении.

Соучредитель PencilBlue здесь.

Вам не хватает косой черты в конце URL MongoDB:

"mongodb://hercules:MYPASSWORD@ds063330.mongolab.com:63330/pencilbluedb/"

Я нашел это, чтобы работать:

Скажем, например, это ваш URI строки подключения

MongoDB://heroku_td9xx269:vl3o3hsj6e61ib7kiaul0vsjrd@ds139725.mlab.com:39725/heroku_td9xx269

  "db": {
    "type": "mongo",
    "servers": [
         'mongodb://heroku_td9xx269:vl3o3hsj6e61ib7kiaul0vsjrd@ds139725.mlab.com:39725'
    ],
    "name": "heroku_td9mdp69",
    "authentication": {
        "un": "heroku_td9xx269",
        "pw": "vl3o3hsj6e61ib7kiaul0vsjrd",
    },
    "writeConcern": 1,
    "query_logging": false
},

Хитрость заключается в том, чтобы использовать ваш dbuser в качестве значения обоих полей "un" и "name".

Другие вопросы по тегам