繁体   English   中英

在 POST 请求中向正文添加参数

[英]Add parameters to the body in a POST request

我在 Node JS 和 Typescript 中有一个项目,我在其中使用tsoa模块。

功能是通过POST接收JSON以创建 URL 并从这些参数中获取信息。

I have created the POST controller that receives a JSON object with the necessary parameters, what I need to know is how do I insert the JSON in the POST request?

这是 controller:

    import { Controller, Get, Post, Body, Response, Route, SuccessResponse, Tags } from 'tsoa';

@Route('/api/test')

interface genericData {
    [key: string]: any;
}

interface DataTest extends genericData {
    dataTest: string,
    insTest: string,
    serTest: string
}

export class TestApiController extends Controller {

     @Post("/ins")
     @SuccessResponse(200, 'Success')
     async testFilter(@Body() insKeys: DataTest): Promise<string> {
         try {
             console.log(JSON.stringify(insKeys))
             return Promise.resolve('test');
         } catch (error) {
             return Promise.reject(error);
         }
     }
}

这是我试图传递给它的 JSON object 的示例:

let data: DataTest = {
  "dataTest": "data1,data2,data3",
  "insTest": "ins1,ins2,ins3",
  "serTest": "ser1,ser2,ser3"
}

与 model 作为...

model.ts

interface GenericData {
  [key: string]: any;
}

export interface DataTest extends GenericData {
  dataTest: string;
  insTest: string;
  serTest: string;
}

和 controller 作为...

controller.ts


import { Controller, Post, Body, Route, SuccessResponse } from 'tsoa';
import { DataTest } from './model';

@Route('/api/test')
export class TestApiController extends Controller {

  @Post("/ins")
  @SuccessResponse(200, 'Success')
  async testFilter(@Body() insKeys: DataTest): Promise<string> {
    try {
      console.log(JSON.stringify(insKeys))
      return Promise.resolve('test');
    } catch (error) {
      return Promise.reject(error);
    }
  }
}

以下请求对我来说成功......

fetch('/api/test/ins', {
    method: "POST",
    body: JSON.stringify({
        "dataTest": "data1,data2,data3",
        "insTest": "ins1,ins2,ins3",
        "serTest": "ser1,ser2,ser3"
    }),
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    }
});

控制台日志写成...

{"dataTest":"data1,data2,data3","insTest":"ins1,ins2,ins3","serTest":"ser1,ser2,ser3"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM