Nuxt 3,在server/api中,如何知道api post方法是GET还是POST

问题描述 投票:0回答:2

我在

/server/api/test.ts
中创建了一个文件。
当对这个文件发出请求时,无论方法是get还是post,我想自动将值放入“req”有价值的

我尝试的是“event.context.method”。这将返回未定义。

export default defineEventHandler(async (event) => {
    let req = null
    
    if (event.context.method == 'get'){ // event.context.method return undefined!
        req = getQuery(event)
    } else{
        req = await readBody(event)
    }
    console.log( "▼ req ▼", req );
    ...
}
nuxtjs3
2个回答
1
投票

尝试下面的代码。

export default defineEventHandler(async (event) => {
  let req = null

  if (event.req.method === 'GET') {
      req = getQuery(event)
  } else {
      req = await readBody(event)
  }
  console.log("▼ method ▼", event.req.method);
  console.log("▼ req ▼", req);
})

1
投票

仅供将来参考(我是通过谷歌搜索到达这里的):
接受的答案似乎不再合适了,因为

event.req
已被弃用。
正如评论中所述,您可以将文件命名为
*.get.ts
以仅处理 GET 请求。

这是 Nuxt 文档中的相关哈希:
https://nuxt.com/docs/guide/directory-struct/server#matching-http-method

由于它在底层使用 Nitro,所以这些文档也是相关的:
https://ninto.unjs.io/guide/routing#special-request-method

© www.soinside.com 2019 - 2024. All rights reserved.