Страница приложения зависает для вошедшего в систему пользователя при выполнении сброса метеора

Когда у меня активен токен для входа в Meteor и я выполняю сброс БД с помощью meteor reset, страница приложения сильно зависает при перезагрузке. Такое ощущение, что страница продолжает загружаться, хотя на странице нет ничего, с чем я мог бы взаимодействовать. Консоль браузера также зависает. Протестировано на Chrome и Firefox, с одинаковым поведением. Но когда я пытаюсь удалить кэш для домена приложения (через настройки браузера, так как инструменты dev находятся в бессознательном состоянии), все становится хорошо, я перенаправляюсь на страницу входа (как указано в моей конфигурации маршрута), и в консоли браузера появляется следующее сообщение: You've been logged out by the server. Please log in again, Это мой глобальный хук onBeforeAction от Iron Router:

Router.onBeforeAction(function () {

document.documentElement.className = 'gt-ie8 gt-ie9';

var currentUser = Meteor.user(),
    currentRoute = this.route.getName(),
    routeOptions = {},
    userRoles,
    userCompany, userTeam,
    allowedRoutes;

// prevent not logged in user from visiting the app
// console.log(this.next);
if (!currentUser) {
  this.redirect('login');
  // return;
} else {

  userRoles = currentUser.roles;

  userRoles = userRoles.length ? userRoles : ['member'];
  userCompany = currentUser.companyId || null;
  userTeam = currentUser.teamId || null;

  // get current user allowed routes (for highest role)
  allowedRoutes = _.filter(SW.roles, function (appRoute, index) {
    return userRoles.indexOf(index) > -1;
  });
  allowedRoutes = allowedRoutes && allowedRoutes.length ? allowedRoutes[0].routes : [];

  // if not all routes are allowed
  if (allowedRoutes.indexOf('*') === -1) {
    // restrict if route is not allowed
    if (!allowedRoutes.length || allowedRoutes.indexOf(currentRoute) === -1) {
      this.redirect('member.self');
    }
  }

}

this.next();

}, {
  except: ['enroll', 'login', 'logout']
});

Я также должен упомянуть, что это очень странная проблема, которая возникает на рабочем сервере гораздо чаще, чем при проведении локального тестирования.

1 ответ

Решение

Проблема, похоже, исчезла с последним обновлением Meteor (1.0.2.1). Тем не менее, это может быть из-за этой проблемы с Fast Render (исправлено в 2.1.0), который я использую в своем проекте.

Другие вопросы по тегам