Meteor 方法发送 public MongoDB 文档而不发布所有内容

Meteor Method to send a public MongoDB document without publishing everything

流星和 mongo.

的新手

我有一些 JSON 存储在 mongo 中,我想通过混淆令牌公开公开,而不使用类似的东西:

//app/models/stuff.js
Stuff = new Mongo.Collection("stuff");
Meteor.publish("stuff", function (){
    return Stuff.find();
});
//additionally, the client-side subscription

我只想公开客户端通过 URL 路由参数或某种客户端标识符(例如可以在其中键入 code/token 的文本字段)直接请求的文件

例如,http://website.com/view/abcdefghijklmnop

任何了解 link 的人都可以输入它并获取文件。但是,应该没有办法只获取 每个 文件而不给出每个标记。

我想知道这是否是完成任务的最佳方式:

//app/server/stuff.js
Meteor.methods({
    getStuff: getStuff
});

function getStuff(stuffId) {
    var result = Stuff.find({_id: stuffId});
    return result;
}

然后

//app/client/stuff.js
var json = Meteor.call('getStuff', 'abcdefghijklmnop');

为什么不只发布请求的文档?

Meteor.publish('stuff', function (id){
  check(id, String);
  return Stuff.find(id);
});