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".