Remix api 解析请求体

Non*_*yck 4 javascript reactjs remix.run

我正在创建一个将处理 post 请求的 api 路由,主要思想是创建一个 api 端点来添加数据。问题是我无法将数据发送到端点。

// posts-creation.ts
export const action: ActionFunction = async ({ request }) => {
  switch (request.method) {
      case 'POST': {
        return json(request.body);
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用邮递员使用 JSON 正文执行发布请求时显示了这一点

{
"_readableState": {
    "objectMode": false,
    "highWaterMark": 16384,
    "buffer": {
        "head": null,
        "tail": null,
        "length": 0
    },
    "length": 0,
    "pipes": [],
    "flowing": null,
    "ended": false,
    "endEmitted": false,
    "reading": false,
    "sync": false,
    "needReadable": false,
    "emittedReadable": false,
    "readableListening": false,
    "resumeScheduled": false,
    "errorEmitted": false,
    "emitClose": true,
    "autoDestroy": true,
    "destroyed": false,
    "errored": null,
    "closed": false,
    "closeEmitted": false,
    "defaultEncoding": "utf8",
    "awaitDrainWriters": null,
    "multiAwaitDrain": false,
    "readingMore": false,
    "dataEmitted": false,
    "decoder": null,
    "encoding": null
},
"_events": {
    "error": [
        null,
        null,
        null,
        null
    ]
},
"_eventsCount": 5,
"_writableState": {
    "objectMode": false,
    "highWaterMark": 16384,
    "finalCalled": false,
    "needDrain": false,
    "ending": false,
    "ended": false,
    "finished": false,
    "destroyed": false,
    "decodeStrings": true,
    "defaultEncoding": "utf8",
    "length": 0,
    "writing": false,
    "corked": 0,
    "sync": true,
    "bufferProcessing": false,
    "writecb": null,
    "writelen": 0,
    "afterWriteTickInfo": null,
    "buffered": [],
    "bufferedIndex": 0,
    "allBuffers": true,
    "allNoop": true,
    "pendingcb": 0,
    "prefinished": false,
    "errorEmitted": false,
    "emitClose": true,
    "autoDestroy": true,
    "errored": null,
    "closed": false
},
"allowHalfOpen": true
Run Code Online (Sandbox Code Playgroud)

}

知道如何解析响应并获取正文数据而无需安装其他软件包吗?

vin*_*gle 6

你可以做:

const data = await request.json();
return json({ data });
Run Code Online (Sandbox Code Playgroud)