连接到远程服务器并使用远程收集

Connect to a remote server and use the remote collection

本文关键字:程收集 服务器 连接      更新时间:2023-09-26

我有两个应用程序要分别部署,但部分共享数据库和用户。我创建了一个非常简单的连接方法。

Remote.connect = function (remoteUrl="http://localhost:3030") {
  let remote = DDP.connect(remoteUrl);
  Meteor.remote = remote;
  Accounts.connection = remote;
  Meteor.users = new Mongo.Collection('users', {
    connection = remote
  });
  return remote;
}
Meteor.startup(function () {
  Remote.connect(Meteor.settings.public.REMOTE_URL);
});

所以这将工作-我可以登录作为一个"远程"用户一样容易。但是,我在使用其他集合时遇到了一些麻烦。例如:

Orders = new Mongo.Collection('orders', {
  connection: Meteor.remote
});

与远程应用程序上的"orders"集合共享相同的名称。我试着在我的本地查询它,但它没有产生任何结果。如果我在主应用程序上查询它,它会产生一个结果。

如何使用meteor连接到远程集合?

要想让你的"客户端"应用的数据集被"服务器端"应用的数据集填充,你需要订阅这个应用的发布。DDP.connect()返回的对象可以帮助您做到这一点。假设你原来的应用程序是这样发布订单的:

Meteor.publish('orders', function () {
  return Orders.find();
});

那么你所需要做的就是:

Meteor.remote.subscribe('orders');