koa-body
一、认识
koa-body
是一个 Koa
中间件,主要用于解析 HTTP
请求的主体(body
)。它支持多种内容类型的解析,包括 application/json
、application/x-www-form-urlencoded
和 multipart/form-data
(用于文件上传)。
koa-body
与 koa-multer
相比: 专门用于处理文件上传,支持 multipart/form-data
。主要关注文件上传,不处理 JSON
或 URL
编码数据的解析。
koa-body
与 koa-bodyparser
相比: koa-bodyparser
专注于解析 application/json
和 application/x-www-form-urlencoded
。 不支持文件上传,无法处理 multipart/form-data
。
因此 koa-body
代替了 koa-bodyparser
和 koa-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);
});