Как подключить мое метеорологическое приложение к внешнему MongoDB? [Дубликат]

1

У меня есть сервер Node.JS размещенный в heroku, и я хочу использовать ту же базу данных Mongo в своем приложении Meteor.

Вот моя база данных Mongo на моем сервере Node.js:

var mongoose     = require('mongoose');
var Schema       = mongoose.Schema;

var messageSchema   = new Schema({
    requestNumber: String,
    requestedDateTime: String,
    reasons: String,
    state: String,
    hospital: String,
    phone: String,
    status: {type: String, default: 'Pending'},
    latestUpdate: Date,
    createdAt: {type: Date, default: Date.now}
});

module.exports = mongoose.model('Requests', messageSchema);

И вот моя коллекция в " Meteor:

Requests = new Mongo.Collection("requests");

Requests.attachSchema(new SimpleSchema({
    requestNumber: {type: String},
    requestedDateTime: {type: String},
    reasons: {type: String},
    state: {type: String},
    hospital: {type: String},
    phone: {type: String},
    status: {type: String, defaultValue: 'Pending'},
    latestUpdate: {type: Date},
    createdAt: {type: Date, defaultValue: Date.now}
}));

Requests.allow({
  insert: function(userId, doc){
    return true;
  },
  update: function(userId, doc, fields, modifier){
    return true;
  },
  remove: function(userId, doc){
    return true;
  }
});

Вот как я подключаюсь к моей Node.JS данных Node.JS внутри приложения Meteor:

Meteor.startup(() => {
    process.env.MONGO_URL = 'mongodb://...';
});

Когда я пытаюсь использовать db.requests.find().pretty() в meteor mongo/mongo shell, на консоли ничего не печатается.

Что я здесь делаю неправильно?

Теги:
meteor

1 ответ

2

Я думаю, что неправильный способ подключения к внешней БД. Вы указываете MONGO_URL после того, как ваше приложение запустилось, и на этом этапе он уже запустил внутренний сервер mongo.

Вы должны указать MONGO_URL во время запуска вашего приложения meteor с консоли:

MONGO_URL="mongodb://..." meteor

Вы можете использовать крошечный скрипт sh для этого:

#!/bin/sh
MONGO_URL="mongodb://..." meteor -s <path_to_settings_file> ... <other_parameters>
  • 0
    Благодарю. Я сделал это, и, кажется, работает, потому что я не могу использовать команду "meteor mongo", поскольку она подключается только к локальному mongo. но как я могу убедиться, что это связано? Я попытался "console.log (Requests.find ({}))", но ничего не было возвращено. Извините, что нашли время.
  • 0
    Вы можете использовать meteor shell и запускать там команды, такие как Requests.find().fetch()
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню