前端POST请求接收不到参数

首先contorller 确定加入了@requestbody 注解
但还是接收不到参数

下面是实体中接收参数的属性

	private Integer PageNo;
    private Integer PageSize;
    private Object  QueryInfo;

这里其实是属性命名不规范,没遵循驼峰命名法,驼峰命名法属性首字母要小写 导致post请求的json参数跟实体中参数对应不上

解决方案
实体的get() set()方法
在set()方法上加上注解 @JsonProperty
该注解value里是前端请求的属性名

 	public Integer getPageNo() {
        return PageNo;
    }
    @JsonProperty(value = "PageNo")
    public void setPageNo(Integer pageNo) {
        PageNo = pageNo;
    }

    public Integer getPageSize() {
        return PageSize;
    }
    @JsonProperty(value = "PageSize")
    public void setPageSize(Integer pageSize) {
        PageSize = pageSize;
    }

    public Object getQueryInfo() {
        return QueryInfo;
    }
    @JsonProperty(value = "QueryInfo")
    public void setQueryInfo(Object queryInfo) {
        QueryInfo = queryInfo;
    }

另外一种 请求400错误
在实体类上加入下面注解
这个注解是强制参数匹配注解
会把实体中对的参数去跟请求参数对应忽略属性不匹配的值

@JsonIgnoreProperties(ignoreUnknown = true)
### 处理 POST 请求接收参数 在 NestJS 中,可以通过控制器方法来处理 HTTP 请求。对于 `POST` 请求,通常会通过装饰器如 `@Body()` 来提取请求体中的数据。 以下是实现方式的一个具体例子: #### 控制器定义 NestJS 使用装饰器机制绑定路由到特定的方法上。下面是一个简单的示例,展示如何创建一个可以接受 `POST` 请求的端点,并从中获取传递的数据[^1]。 ```typescript import { Controller, Post, Body } from '@nestjs/common'; @Controller('example') export class ExampleController { @Post() create(@Body() bodyData: any): string { const params = Object.keys(bodyData); const paramVals = Object.values(bodyData); console.log(`Received Parameters: ${JSON.stringify(params)} [^1]`); console.log(`Parameter Values: ${JSON.stringify(paramVals)} `); return 'Data received successfully!'; } } ``` 在这个例子中: - 装饰器 `@Post()` 将该方法映射至 `/example` 的 `POST` 方法。 - 参数 `@Body()` 自动解析传入的 JSON 数据对象作为函数参数输入给 `create` 函数。 当客户端发出如下形式的请求时: ```javascript axios({ method: 'post', url: '/example', data: { key1: 'value1', key2: 'value2' } // 这里的data会被自动解析成bodyData变量的内容 }); ``` 服务器端将会接收到 `{key1: 'value1', key2: 'value2'}` 并将其打印出来[^2]。 #### 配置中间件支持 JSON 解析 为了使上述功能正常工作,还需要确保 Express 或 Fastify(取决于所选适配器)能够正确解析 JSON 格式的请求体。这通常是默认启用的,但如果生效,可以在应用启动文件中手动配置: ```typescript import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import * as express from 'express'; async function bootstrap() { const app = await NestFactory.create(AppModule); // 添加此行以显式启用 json 支持 app.use(express.json()); await app.listen(3000); } bootstrap(); ``` 这样设置之后,所有的 POST 请求都将被适当解析为 JavaScript 对象供后续逻辑调用[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值