Node.js - подключение к MongoDB с использованием MongoHQ на Heroku - PullRequest
4 голосов
/ 28 сентября 2011

У меня есть приложение Node.js, использующее Express, которое хранит данные в mongoDB (локально).

Теперь он успешно передан герою в стеке кедра, и сервер работает. Я добавил аддон mongohq через терминал.

Теперь ... как мне подключить этот mongoDB через mongohq к моему приложению, чтобы начать его использовать ??? Я не вижу учебник по этому вопросу в Интернете. Если вы можете указать мне один или начать с того, где добавить конфигурацию, я был бы очень признателен!

Большое спасибо.

Обновление:

Я пробовал следующее (с реальными значениями для MYPASSWORD и MYDBNUMBER:

в rout.js

var db = mongoose.connect('mongodb://heroku:<MYPASSWORD>@staff.mongohq.com:10049/<MYDBNUMBER>');

в моем schema.js (также пытался использовать heroku

var mongoose = require('mongoose');
mongoose.connect('mongodb://heroku:<MYPASSWORD>@staff.mongohq.com:10049/<MYDBNUMBER>');

my package.json

{
"name": "NAME"
, "version": "0.0.1"
, "dependencies": {
  "express": "2.4.6"
, "connect": "1.7.1"
, "stylus": ">= 0.0.1"
, "mongodb": ">= 0.9.6-7"
, "mongoose": ">= 2.0.0"
, "ejs": ">=0.4.3"
}
}

Сейчас только root '/' GET успешен. На самом деле, если я попытаюсь / page / НИЧЕГО, я могу успешно получить отрендеренную страницу 500 Error, которую я сделал для обработки попыток получить «страницы», которые не были созданы ... Это кажется мне странным. Все остальное дает мне внутреннюю ошибку сервера.

ТАКЖЕ, если я зайду в mongohq и открою там свою базу данных, будет создана коллекция для страниц моей модели и созданы индексы уникальности, даже если у меня не было доступа к страницам для создания или просмотра. модель в моем приложении ...

рад предоставить любую другую информацию ... застрял.

1 Ответ

2 голосов
/ 03 октября 2011

Мы используем heroku против MongoHQ, но в нашем случае мы создали учетную запись MongoHQ самостоятельно, поэтому наше решение немного отличается.Теперь мы используем плагин Redis, и в этом случае мы подключаемся к Redis, используя переменные heroku env.Когда вы создаете новый плагин, Heroku добавляет набор переменных env, к которым вы можете получить доступ из вашего приложения node.js, легко выполняя это:

process.env.NAME_OF_VAR

В случае с Redis, имя переменной будетREDISTOGO_URL, поэтому наш код выглядит так:

process.env.REDISTOGO_URL

Для MongoHQ переменная env выглядит как MONGOHQ_URL

Возможно, вам придется выполнить некоторый анализ.У Heroku есть некоторая документация для Ruby здесь http://devcenter.heroku.com/articles/mongohq#using_the_mongo_ruby_driver, которая должна помочь вам в этом.

Относительно того, где это сделать в экспресс-приложении.Мы выполняем все настройки в app.js, который является нашей точкой входа в приложение.

Надеюсь, это поможет.

...