【问题标题】:Remix api parse request bodyRemix api 解析请求正文
【发布时间】:2022-07-18 22:52:55
【问题描述】:

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

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

但是当我使用邮递员使用 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

}

知道如何在无需安装其他包的情况下解析响应并获取正文数据吗?

【问题讨论】:

  • 任何客户端错误? CORS?
  • 不,没有什么无效的,我发现如果我像表单数据而不是json格式发送数据,我可以得到数据

标签: javascript reactjs remix.run


【解决方案1】:

你可以这样做:

const data = await request.json();
return json({ data });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 2021-07-09
    • 2021-11-12
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多