Koa POST请求对象问题

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

我一直在我的Node应用程序中使用Koa设置GET请求,没有问题。但是,当我尝试使用POST请求来处理请求正文中的数据传递时,我遇到了一个问题。这是有问题的路线:

router.post("/api/player/name", async (ctx) => {
  console.log('ctx.request.body: ', ctx.request.body); // {fullName: "John Smith"}
  await Player.findOne(ctx.request.body)
    .then(player => {
      ctx.body = player;
    })
    .catch(err => {
      ctx.body = "Error: " + err;
    });
});

现在,当我在邮递员的请求正文中传递{fullName: "John Smith"}时,我看到此控制台以ctx.request.body的身份登录到我的Node终端中。但是在邮递员中,我得到的答复是:

错误:ObjectParameterError:findOne()的参数“过滤器”必须为一个对象,得到了{fullName:“ John Smith”}

我在这里想念什么?据我所知,这是对象的形式。我需要在这里调整什么?

node.js koa
1个回答
0
投票

我认为参数必须看起来像这样{ <field>: { $eq: <value> } }

Player.findOne({ fullName: { $eq: ctx.request.body.fullName } })
    .then(player => {
      ctx.body = player;
    })
    .catch(err => {
      ctx.body = "Error: " + err;
    });

您可以查看mongoose文档以了解更多。

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