koa-body和koa-bodyparser post 请求时ctx.request.body 获取到的参数为空

发布于 2022-09-12 13:16:41 字数 1563 浏览 23 评论 0

目前的问题是我分别使用了kao\-bodyparser和koa\-body的中间件来获取post请求的数据,都显示为空对象,Content\-type 为x\-www\-form\-urlencoded和json都不行,只有get可以,有大佬知道是为什么吗?
我用原生的方式解析是可以拿到的

package.json

{
  "name": "koa-server",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "server": "tsc && nodemon src/lib/www.ts",
    "watch": "cross-env nodemon --watch 'src/**/*' -e ts,tsx --exec 'ts-node' src/lib/www.ts",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "koa": "^2.13.0",
    "koa-bodyparser": "^4.3.0",
    "koa-json": "^2.0.2",
    "koa-logger": "^3.2.1",
    "koa-onerror": "^4.1.0",
    "koa-router": "^10.0.0",
    "koa-static": "^5.0.0",
    "mongoose": "^5.10.13"
  },
  "devDependencies": {
    "@types/koa": "^2.11.6",
    "@types/koa-router": "^7.4.1",
    "cross-env": "^7.0.2",
    "nodemon": "^2.0.6",
    "ts-node": "^9.0.0",
    "typescript": "^4.0.5"
  }
}

app.ts

const bodyparser = require("koa-bodyparser");
// 首页api路由
const Index = require("./router/index");
// 异常中间件
error(app);
// 配置post请求传回参数
app.use(bodyparser());
app.use(async (ctx: any, next: Function) => {
    console.log(ctx.request.body);
    await next();
})

axios配置

instance.defaults.headers.post["Content-Type"] =
    "application/x-www-form-urlencoded;charset=utf-8;";

请求方法

 test: async ()=>{
        await post("/test",{name:"测试",value:"123"});
      },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文