node.js - 如何在环回 4 中设置不同的 Http 状态
问题描述
我找不到任何有关如何使用环回 4 更改成功 HTTP 代码的资源。
例如 :
201 在 post 方法上“创建”
204“无内容”删除方法
我试图在 @api 装饰器中指定这一点,但此更改并未反映在实际响应中。
谢谢你的帮助 !
解决方案
我找不到任何有关如何使用环回 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);
// ...
}
}
不要忘记Response
从@loopback/rest
. 在您的控制器中添加以下导入。
import { Response } from '@loopback/rest';
201 在 post 方法上“创建”
请参阅https://github.com/strongloop/loopback-next/issues/788中的讨论。Location
困难的部分是如何确定在响应头中发送什么 URL 。
204“无内容”删除方法
只需更改您的控制器方法以返回undefined
而不是当前{count: 1}
对象。lb4
我相信这是我们的工具搭建的 CRUD 控制器的默认行为。
export class TodoController {
// ...
@del('/todos/{id}', {
responses: {
'204': {
description: 'Todo DELETE success',
},
},
})
async deleteTodo(@param.path.number('id') id: number): Promise<void> {
await this.todoRepo.deleteById(id);
}
推荐阅读
- javascript - 如何在提交打印pdf之前编码以回显用户帖子值?
- python-3.x - 如何在python中调用远程对象上的方法?
- reactjs - 选择不在条件渲染中工作
- c - 指向整数数组的 C 指针
- json - 如何在一个批次中发送多个 post 请求?
- python - 从 windows 和 linux 的子文件夹导入函数
- javascript - 执行上下文:为什么这个 javascript 代码会有这样的行为?
- php - 无法使用 curl 命令在 php 中解码 json 数据
- sql - 如何替换sql中的约束?
- java - 使用 Jetty 9.4.19 v20190610 设置 Vaadin 10+