Задать вопрос

Meteor.js: как поменять курсор (запись), передоваемый клиенту?

Допустим есть подписка, которая возвращает одну определенную запись (курсор). Там есть поле "nextPlayer", где указан id юзера, который ходит следующим. Но нужно, чтобы поле nextPlayer на клиенте имело значение либо 0 (если ходит текущий клиент) либо 1 (если ходит другой). Чтобы клиенту не передавались id пользователей. С помощью чего это можно реализовать?
Код на сервере:
Meteor.publish('current-game', function(){ 
 return Games.find({users: this.userId, finished: {$exists: false}}, {limit: 1})
})
  • Вопрос задан
  • 45 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
zentelechia
@zentelechia
Тестирую идеи - делаю прототипы софта и железа
Возможно стоит добавить еще одно поле в каждый документ в Games, "а-ля" myTurn : 1
А в публикации сделать так
Meteor.publish('current-game', function(){ 
  let options = {limit: 1, fields: {myTurn: 0}}
  const myTurn = Games.findOne({users: this.userId, nextPlayer: this.userId, finished: {$exists: false}}))
  if (myTurn){
    options.fields.myTurn=1
 }
 return Games.find({users: this.userId, finished: {$exists: false}}, {limit: 1})
})


А на клиенте проверять свойство myTurn
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы