Node.js + Mongoose работает локально, но не на Heroku - PullRequest
4 голосов
/ 16 марта 2012

Вот мой файл node.js, который я использую на Heroku.Он отлично работает локально, но когда я отправляю его в Heroku, коллекция баз данных не создается и не выдает никаких ошибок.В конечном счете, я просто пытаюсь заставить его создать соединение, пока оно работает на Heroku.Спасибо.

var mongoose = require('mongoose'),
    db_url = process.env.MONGOHQ_URL || "mongodb://john:<mypasswordwashere>@staff.mongohq.com:10053/app3305538",
    db = mongoose.connect(db_url),
    Schema = mongoose.Schema;

//Mongoose DB Test
var MsgSchema = new Schema({
    date: {type: Date, default: Date.now},
    message: String
});
var MsgModel = db.model("messages", MsgSchema);
var Msg = new MsgModel();
Msg.message = "blurgh";
Msg.save();

Ответы [ 3 ]

6 голосов
/ 19 марта 2012

Вы указали версию узла в heroku?

пожалуйста, отошлите это.(Я также перепутал ту же проблему. Но решил.) http://devcenter.heroku.com/articles/nodejs-versions

2 голосов
/ 16 марта 2012

Ваш вызов .save() принимает функцию обратного вызова.Попробуйте добавить туда отладочное сообщение и посмотрите, показывает ли оно какую-либо информацию о причине его сбоя, например:

Msg.save(function(err){
  if(err){ 
    console.log("Error:", err);
  }else{
    console.log("success");
  }
})

Тогда вы сможете увидеть результат в логах heroku.

0 голосов
/ 07 июня 2014

Еще один возможный источник путаницы - если вы используете и MongoLab, и MongoHQ, строка подключения по умолчанию, представленная в учебнике Heroku , прервет сеанс работы с БД:

var mongoUri = process.env.MONGOLAB_URI || process.env.MONGOHQ_URL || 'mongodb://localhost/mydb';

т.е.: если вы используете MongoHQ только с обоими установленными, вы должны выбросить process.env.MONGOLAB_URI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...