Koa中间件ctx.request.body为何是字符串?-灵析社区

PunkMaccccc

koa 中间件获取的 ctx.request.body 的typeof为什么会是字符串呢 这边是使用了koa-body解析body数据 下面是index.js 引入koa-body const Koa = require('koa'); const { koaBody } = require('koa-body'); const userRouter = require('../routers/user.route'); const app = new Koa(); app.use(koaBody()); app.use(userRouter.routes()); const errHandler = require('./errHandler') // 统一的错误处理 app.on('error', errHandler) module.exports = app route文件中,post 传 ctx.request.body给中间件 (打印发现是字符串) const Router = require('koa-router'); const router = new Router({ prefix: '/user' }); //中间件 const { userValidator, verifyUser, crpytPassword } = require('../middleware/user.middleware') const { register, login } = require('../controller/user.controller') //GET user // router.get('/', async (ctx, next) => { // ctx.body = 'user'; // }); //POST // 合法性 合理性 加盐 register router.post('/register', userValidator, verifyUser, crpytPassword, register) router.post('/login', login) module.exports = router; 中间件打印是字符串 //加密 const crpytPassword = async (ctx, next) => { console.log(typeof ctx.request.body,'---------------'); return const { password } = ctx.request.body const salt = bcrypt.genSaltSync(10) // hash保存的是 密文 const hash = bcrypt.hashSync(password, salt) ctx.request.body.password = hash await next() } ![image.png](https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241026/84168b34b291616a520ddbd973ef4a10.png) 无

阅读量:20

点赞量:0

问AI
这个要看请求你传的Content-Type类型 fetch("http://localhost:7777/deploy?d=1111",{ method:'POST', //请求类型 headers:{ //请求头 "Content-Type":'application/json' }, body:JSON.stringify({ a:33333}), //请求参数 }).then(function(res){ return res.json(); })