Добавить статус к ответу, используя NestJS - PullRequest
0 голосов
/ 25 марта 2020

Я использую Nest JS и задаюсь вопросом, как бы вы добавили статус к объекту ответа. Скажем, у меня есть такой метод контроллера:

  @Get()
  ping(): string {
    return this.appService.ping();
  }

, который возвращает строку типа '24 марта 2020 16:56:07'. Я хочу добавить код состояния к ответу, чтобы мой ответ и сообщение об ошибке, чтобы ответ выглядел следующим образом:

{
  result: "24 March 2020 16:56:07"
  status: "OK"
  errorMessage: ""
}

Есть ли способ добиться этого с помощью встроенного гнезда js features?

ОБНОВЛЕНИЕ: решение, предложенное @ Hitech-Hite sh, это не то, что я ищу, я хочу автоматически создать объект ответа, поэтому я просто возвращаю результат из метода контроллера return this.appService.ping(); а затем something else taking place и создает объект ответа.

1 Ответ

0 голосов
/ 25 марта 2020

Вы можете сделать это в своем служебном файле следующим образом>

  getData(): Message {
    // return { message: 'Welcome to api!' };
    return { message: '' };
  }
  ping() {
    if (this.getData().message !== '') {
      return { status: 'OK', errorMessage: '', result: this.getData().message };
    }
    else {
      return { status: 'FAIL', errorMessage: 'Not able to fetch the result. Please try again later', result: '' };
    }
  }

, когда ping-файл вызывается из контроллера, он будет напрямую давать результат

  @Get()
  ping(): any {
    return this.appService.ping();
  }

Вы можете сделать это непосредственно в контроллере, но проверяя ответ службы.

  @Get()
  ping(): any {
    const pingServiceResponse = this.appService.ping();
    if (pingServiceResponse !== '')
      return { status: 'OK', errorMessage: '', result: pingServiceResponse };
    else
      return { status: 'FAIL', errorMessage: 'Not able to fetch the result. Please try again later', result: pingServiceResponse };

    // return this.appService.ping();
  }
...