在 Koa.js 中处理 JSON 格式数据、静态文件和文件上传可以使用以下中间件:

1. 处理 JSON 格式数据: 可以使用 koa-bodyparser 中间件来解析请求的 body 参数。它会自动将 JSON 格式的数据解析成对象,并挂载到 ctx.request.body 上。示例代码如下:

const bodyParser = require('koa-bodyparser');
 
app.use(bodyParser());

2. 提供静态文件服务: 可以使用 koa-static 中间件来提供静态文件服务。它会将指定目录下的文件作为静态资源返回给客户端。示例代码如下:

const static = require('koa-static');
 
app.use(static('public'));

上面的示例将 public 目录下的文件作为静态文件提供服务,客户端可以通过访问 /public 目录下的文件来获取静态资源。

3. 文件上传: 可以使用 koa-multer 中间件来处理文件上传。koa-multer 提供了丰富的选项和 API 来处理文件上传请求。示例代码如下:

const multer = require('koa-multer');
const upload = multer({ dest: 'uploads/' });
 
router.post('/upload', upload.single('image'), (ctx) => {
  // 处理文件上传
});

上面的示例使用 koa-multer 中间件来处理文件上传请求,upload.single() 方法定义了单个文件上传的规则。在路由处理函数中,可以通过 ctx.req.file 获取上传的文件信息。

这些中间件可以根据实际需求进行配置和使用。你可以根据需要选择合适的中间件来处理 JSON 数据、静态文件和文件上传。