我在heroku中托管了Node.JS
服务器,我想在我的Meteor
应用程序中使用相同的Mongo数据库。
这是我的Node.js
服务器中的Mongo数据库:
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
app中的Meteor
数据库:
Meteor.startup(() => {
process.env.MONGO_URL = 'mongodb://...';
});
当我在db.requests.find().pretty()
中尝试meteor mongo/mongo shell
时,控制台上没有任何内容。
我在这里做错了什么?
答案 0 :(得分:2)
我认为这是连接外部数据库的错误方法。在您的应用启动后,您已经指定了MONGO_URL
,此时它已经启动了内部mongo服务器。
您应该在从控制台运行meteor应用程序时指定MONGO_URL
:
MONGO_URL="mongodb://..." meteor
您可以使用微小的sh
脚本来执行此操作:
#!/bin/sh
MONGO_URL="mongodb://..." meteor -s <path_to_settings_file> ... <other_parameters>