使用router.post()无法获取到req.body

应该用一个router, 然后连续点:

router.get() .post()  .get() .post()   

而不是像下面这样每处理一个URL就去:
router.get()
router.post()

// 应该是这样:

router.get('/simple/get', function(req, res) {
  res.json({
    msg: `hello world`
  })
})

.post('/base/post', function(req, res) {
  res.json(req.body)
})


// 而不应该是这样:

router.get('/simple/get', function(req, res) {
  res.json({
    msg: `hello world`
  })
})

router.post('/base/post', function(req, res) {
  res.json(req.body)
})

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: router.add_routes是一个aiohttp框架中的方法,用于添加路由规则。 使用方法如下: 1. 导入aiohttp库 ```python import aiohttp ``` 2. 创建一个aiohttp的web应用程序 ```python app = aiohttp.web.Application() ``` 3. 创建一个路由对象 ```python router = aiohttp.web.RouteTableDef() ``` 4. 添加路由规则 ```python @router.get('/') async def index(request): return aiohttp.web.Response(text='Hello, world') ``` 5. 将路由规则添加到应用程序中 ```python app.add_routes(router) ``` 这样就完成了路由规则的添加。当访问根路径时,会调用index函数并返回一个包含"Hello, world"文本的响应。 ### 回答2: router.add_routes()方法用于向Router对象中添加路由。这个方法可以传递一个可迭代对象,如列表或元组,其中包含多个web.URLSpec对象,每个对象代表一个路由规则。每个web.URLSpec对象可以包含一个正则表达式(用于匹配URL路径)和一个请求处理函数(用于处理匹配到的请求)。当请求到达路由器时,它将尝试与路由表中的每个路由规则进行匹配,直到找到匹配的路由规则。 使用router.add_routes()的基本步骤如下: 1. 创建一个Router对象:`router = web.Router()` 2. 创建一个或多个web.URLSpec对象,其中包含路由规则和请求处理函数,例如:`route = web.url('/path', handle_request)` 3. 将URLSpec对象添加到路由器中:`router.add_routes([route])` 可以重复执行步骤2和3,以添加更多的路由规则。 下面是一个简单的示例,展示了如何使用router.add_routes()方法: ```python from aiohttp import web async def handler(request): return web.Response(text="Hello, World!") router = web.Router() route = web.RouteDef("GET", '/hello', handler) router.add_routes([route]) app = web.Application() app.add_router(router) web.run_app(app) ``` 在上述示例中,我们创建了一个请求处理函数handler(),它返回一个带有“Hello, World!”文本的响应。然后,我们创建了一个路由规则对象route,将其路径设置为“/hello”,并将请求处理程序设置为handler函数。然后,我们将路由规则添加到路由器中,最后将路由器添加到应用程序中并运行应用程序。 当我们向应用程序发出GET请求,路径为“/hello”时,路由器将匹配到我们添加的路由规则,并调用handler函数来处理该请求。最后,我们将“Hello, World!”作为响应发送回客户端。 ### 回答3: router.add_routes是用于向路由器添加路由的方法。它可以用于将不同的URL与相应的处理程序关联起来。以下是使用router.add_routes的示例。 首先,我们需要导入aiohttp库中的Router类: ``` from aiohttp import web ``` 接下来,我们创建一个Router对象: ``` router = web.RouteTableDef() ``` 然后,我们定义一个处理程序来处理特定的URL请求: ``` @router.get('/hello') async def handle_hello(request): return web.Response(text='Hello, world!') ``` 上面的代码定义了一个GET请求处理程序,它将在访问“/hello”时返回“Hello, world!”的响应。 最后,我们将定义的路由添加到路由器中: ``` app = web.Application() app.router.add_routes(router) ``` 上面的代码将创建一个Web应用程序,并将我们定义的路由添加到应用程序的路由器中。现在,我们可以通过访问应用程序的URL来调用相应的处理程序。 总结来说,router.add_routes方法是用于将路由添加到路由器中的。通过定义不同的处理程序,并使用不同的HTTP方法(如GET、POST等)来关联特定的URL,我们可以使用router.add_routes来构建一个可用的Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值