Подтвердить что ты не робот

Метеор: скрыть свойства клиента

Есть ли способ исключить определенные свойства из клиентских обновлений?

Невозможно увидеть свойство при проверке коллекции в консоли

4b9b3361

Ответ 1

Совершенно верно.

  • Удалите пакет autopublish, который включен по умолчанию: meteor remove autopublish

  • Создайте свою коллекцию: Rooms = new Meteor.Collection("rooms"); Нет необходимости в условном isServer или isClient, так как это должно присутствовать на

  • В коде на стороне сервера publish только подмножество вашей коллекции, обнуляя поля, которые вы не хотите, чтобы клиент имел:

    if (Meteor.isServer) {
        //you could also Rooms.find({ subsetId: 'some_id' }) a subset of Rooms
        Meteor.publish("rooms", function () {
            return Rooms.find({}, {fields: {secretInfo: 0}});
        });
    }
    

    ПРИМЕЧАНИЕ: установка {secretInfo: 0} выше не устанавливает все экземпляры secretInfo для каждой строки в коллекции Rooms равным нулю. Он удаляет поле целиком из коллекции клиентов. Подумайте о 0 как выключенном переключателе:)

  • Подпишите клиентскую сторону в опубликованную коллекцию:

    if (Meteor.isClient) {
        Deps.autorun(function() {
            Meteor.subscribe("rooms");
        });
    }
    

Надеюсь, это поможет!