如何在环回4中设置其他Http状态

Fel*_*vee 6 node.js loopbackjs

我找不到有关如何使用环回4更改成功HTTP代码的任何资源。

例如 :

201“创建”后方法

204“无内容”的删除方法

我尝试在@api装饰器中指定此设置,但此更改未反映在实际响应中。

谢谢你的帮助 !

Mir*_*toš 8

我找不到有关如何使用环回4更改成功HTTP代码的任何资源。

我们还没有对此功能的一流支持。当前的解决方法是将Response对象注入到您的控制器方法中,并直接通过Express / Node.js核心API设置状态代码。

export class TodoController {
  constructor(
    @repository(TodoRepository) protected todoRepo: TodoRepository,
    @inject(RestBindings.Http.RESPONSE) protected response: Response,
  ) {}

  async createTodo(@requestBody() todo: Todo): Promise<Todo> {
    this.response.status(401);
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

不要忘了导入Response@loopback/rest。将以下导入内容添加到您的控制器中。

import { Response } from '@loopback/rest';
Run Code Online (Sandbox Code Playgroud)

201“创建”后方法

请参阅https://github.com/strongloop/loopback-next/issues/788中的讨论。困难的部分是如何确定Location响应头中要发送的URL 。

204“无内容”的删除方法

只需将您的控制器方法更改为返回undefined而不是当前{count: 1}对象即可。我相信这是我们lb4工具架设的CRUD控制器的默认行为。

import { Response } from '@loopback/rest';
Run Code Online (Sandbox Code Playgroud)

  • @MiroslavBajtoš 在从 `@loopback/rest` 导入 `Response` 之后,它现在可以工作了。也编辑了答案。谢谢 :) (2认同)