首页 > 解决方案 > 如何从控制器在nestjs应用程序中发送错误代码?

问题描述

除了200之外,我如何在nestjs中发送错误代码?我试图在方法中注入响应对象,但没有发送错误的方法。

  save(  @Body() body:any,@Res() response: Response):string {

console.log("posting...")
    console.log(body)
    return "saving " + JSON.stringify(body)

  }

上面的代码发送具有 20X 状态的正文我想发送不同的状态代码,如 400 或 500。

标签: javascripttypescriptnestjs

解决方案


因此,返回 http 状态代码的完整示例既不抛出错误,也不通过 static @HttpCode()

import { Post, Res, HttpStatus } from '@nestjs/common';
import { Response } from 'express';
...
  @Post()
  save(@Res() response: Response) {
    response
      .status(HttpStatus.BAD_REQUEST)
      .send("saving " + JSON.stringify(body));
  }

您需要使用@Res()装饰器来获取底层express Response对象并使用它的status()方法。

虽然我仍然想知道是否有其他方法不涉及操作有状态对象,而只是像你在春天做的那样在 Nestjs 中干净地返回......


推荐阅读