Nuxt3 server/api中如何判断请求方法并统一获取请求数据?
解决Nuxt服务器路由中无法获取请求方法的问题
你在/server/api/test.ts中尝试通过event.context.method判断请求方法,但这个属性并不存在,所以返回了undefined。请求方法实际上直接挂载在event对象的method属性上,并且值为大写的HTTP方法名(比如'GET'、'POST')。
修正后的代码如下:
export default defineEventHandler(async (event) => { let req = null if (event.method === 'GET') { req = getQuery(event) } else if (event.method === 'POST') { req = await readBody(event) } console.log("▼ req ▼", req); // 后续业务逻辑... })
补充说明:
event.method是Nuxt服务器路由中获取请求方法的正确方式,符合HTTP规范。- 如果需要兼容更多请求方法(如PUT、DELETE),可以扩展条件判断逻辑。
getQuery(event)和readBody(event)是Nuxt提供的内置工具函数,分别用于获取GET请求的URL查询参数、异步读取POST/PUT等请求的请求体内容,你的使用方式是正确的。
内容的提问来源于stack exchange,提问作者Lawyer Kenny
相关产品推荐
相关产品推荐

