跳到主要内容

koa-body

一、认识


koa-body 是一个 Koa 中间件,主要用于解析 HTTP 请求的主体(body)。它支持多种内容类型的解析,包括 application/jsonapplication/x-www-form-urlencodedmultipart/form-data(用于文件上传)。

koa-bodykoa-multer 相比: 专门用于处理文件上传,支持 multipart/form-data。主要关注文件上传,不处理 JSONURL 编码数据的解析。

koa-bodykoa-bodyparser 相比: koa-bodyparser 专注于解析 application/jsonapplication/x-www-form-urlencoded。 不支持文件上传,无法处理 multipart/form-data

因此 koa-body 代替了 koa-bodyparserkoa-multer。只需使用 koa-body 一个中间件即可实现 post` 请求

二、API


三、语法


const Koa = require("koa");
const KoaBody = require("koa-body");
const KoaRouter = require("koa-router");

const PORT = 3000;
const app = new Koa();
const { koaBody } = KoaBody;
const router = new KoaRouter();

router.get("/", (ctx) => {
ctx.body = "Hello, Koa!";
});

router.post("/upload", async (ctx) => {
const { files, body } = ctx.request;

ctx.body = {
code: 200,
data: fileUrl,
message: "File uploaded",
};
});

app.use(
koaBody({
text: true,
json: true,
multipart: true,
urlencoded: true,
encoding: "gzip",
formidable: {
uploadDir: uploadDir,
keepExtensions: true,
},
})
);

app.use(router.routes()).use(router.allowedMethods());
server.listen(PORT, () => {
console.log("Server listening on port " + PORT);
});

参考资料


koa2 使用 koa-body 代替 koa-bodyparser 和 koa-multer