Как использовать данные перехватчика в Nest.js - PullRequest
0 голосов
/ 17 мая 2019

Вот моя текущая ситуация:

service предоставляет функцию запроса из базы данных (typeorm).

controller предоставляет API, и самое важное - это инкапсуляция данных. Я надеюсь, что клиент получит такие данные:

{
    code:1456,
    data:{
        // something real data from database
    }
}

Так что я что-то сделал в controller

@Post('save')
async save(@Body() dto: User): Promise<ResponseDTO> {
  // below is a interface to define the data strcture
  const result: ResponseDTO = { code: null, data: null }
  await this.service.save(dto).then(v => {
    result.code = 1456; // custom code
    result.data = { id: v.id }; // the data from service
  }).catch(() => {
    result.code = 500;
  })
  return result
}

Однако то, как я поступил, не очень хорошо. Потому что мне нужно инициализировать ResponseDTO в каждом controller. Поэтому я надеюсь, что interceptor может помочь controller сделать это.

Я знаю, как ввести перехватчик, но я не знаю, как написать код (не код состояний, это означает логический код) в перехватчике.

...