Как мы читаем динамически изменяющееся значение из экспресс-сессии и отображаем значение на угловом интерфейсе - PullRequest
1 голос
/ 27 сентября 2019

Я некоторое время работал с JavaScript, но недавно мне пришлось использовать Angular (v7).Я застрял в ситуации, когда у меня установлено значение сеанса в экспресс-сеансе, и это значение очень динамично.Я не могу отобразить это значение в своем представлении в режиме реального времени.

Это мой первый вопрос о SO, и я знаю, что могу быть очень расплывчатым, но, пожалуйста, дайте мне знать, если вы считаете, что можете помочьменя.Я могу уточнить больше, если это необходимо.

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

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

app.component.html


<button *ngIf="sessionValue$ | async as sval">
     {{sval.status}}
</button>

app.component.ts


this.sessionValue$: Observable<any>;

ngOnChanges(change) {
    this.intialise();
    this.sessionValue$ = this.sessionService.get();
  }

sessionService.ts


url = environment.appUrl + 'session';
get(): Observable<any> {

    return this.http.get<any>(this.url + '/status');
  }

express.session.controller.js


exports.status = function (req, res) {
  try {
    sessioModel.get(req.session, function (result) {
      res.status(200).send(result);
    });
  } catch (error) {
    logger.error(error);
  }
}

express.session.model.js


exports.get= function (session, handleResponse) {
  var sessionValue= session['variableMe'];
  const retVal= sessionValue['nowValue'];

  if (!retVal) {
    handleResponse({ status: "" });
  } else {

    handleResponse({ status: retVal });
  }
};

Я ожидаю, что значение на html-странице будет меняться каждый раз, когда переменная сеанса меняет свое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...