Метеоритный метод для отправки публичного документа MongoDB без публикации всего

Плохо знакомы с метеором и монго.

У меня есть некоторые 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 ответ

Решение

Почему бы просто не опубликовать запрошенный документ?

Meteor.publish('stuff', function (id){
  check(id, String);
  return Stuff.find(id);
});
Другие вопросы по тегам