Hono 未获取参数

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

我似乎无法使用 Hono 和 Axios 从发布请求中获取任何参数。

我的bun hono服务器很简单:

import { Hono } from 'hono';
import { cors } from 'hono/cors';

const app = new Hono();

app.use('*', cors());

app.post('/products', async (c) => {
  const body = await c.req.parseBody();
  const { category, search } = body;

  console.log('Received parameters:');
  console.log(`  category: ${category}`);
  console.log(`  search: ${search}`);


});

export default { 
  port: 3000, 
  fetch: app.fetch, 
} 

反应客户端看起来像:

            const data = {
                category: 'electronics',
                search: 'laptops',
            };

            axios.post('http://localhost:3000/products', data)
    .then(response => {
        console.log(response.data);
     })
     .catch(error => {
         console.error(error);
     });

但是我在终端中未定义:

Started server http://localhost:3000
Received parameters:
  category: undefined
  search: undefined

实际上,整个请求正文只是一个空的

{}
。 我也尝试过使用
c.req.param("category")
,但它也没有帮助......

感谢您的帮助。

post axios bun hono
1个回答
0
投票

req.parseBody()
适用于
multipart/form-data
application/x-www-form-urlencoded
身体类型,它看起来不像 axios 数据的格式。

req.param()
用于像
POST /products/:category
这样的路径参数,示例中的端点未设置为接受,并且不会通过 axios POST 请求发送。

如果端点期望接收 JSON,请使用

req.json()
而不是
req.parseBody()
。查看 https://hono.dev/api/request 了解可用的正文解析选项(文本等也可用)。

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