Meteor Method发送公共MongoDB文档而不发布所有内容

时间:2015-12-11 01:35:48

标签: mongodb meteor angular-meteor

meteor和mongo的新手。

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

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

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

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

知道该链接的任何人都可以输入,并获取该文件。但是,如果没有给出每个令牌,就无法获得每个文件。

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

//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');

1 个答案:

答案 0 :(得分:1)

为什么不发布所要求的文件?

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